当前位置: 首页 > news >正文

手机网站表单页面制作百度竞价推广是什么工作

手机网站表单页面制作,百度竞价推广是什么工作,appcms程序怎么做网站,国际 网站制作公司1.策略模式 好处:动态切换算法或行为场景:实现同一功能用到不同的算法时和简单工厂对比:简单工厂是通过参数创建对象,调用同一个方法(实现细节不同);策略模式是上下文切换对象,调用…

1.策略模式

  • 好处:动态切换算法或行为
  • 场景:实现同一功能用到不同的算法时
  • 和简单工厂对比:简单工厂是通过参数创建对象,调用同一个方法(实现细节不同);策略模式是上下文切换对象,调用同一个方法(实现细节不同);前者着重创建出对象,后者着重灵活切换对象。
using System;// 01 定义通用接口
public interface IPaymentStrategy
{void Pay(decimal amount);
}// 02 写接口实现策略(这里写三个) 
// 信用卡支付策略
public class CreditCardPayment : IPaymentStrategy
{public void Pay(decimal amount){Console.WriteLine($"Paid {amount:C} using Credit Card.");}
}// 支付宝支付策略
public class AlipayPayment : IPaymentStrategy
{public void Pay(decimal amount){Console.WriteLine($"Paid {amount:C} using Alipay.");}
}// 微信支付策略
public class WeChatPayment : IPaymentStrategy
{public void Pay(decimal amount){Console.WriteLine($"Paid {amount:C} using WeChat.");}
}// 03 写上下文类,用于切换策略(内置设置策略方法、执行策略方法)
public class PaymentContext
{private IPaymentStrategy _paymentStrategy;// 构造函数public PaymentContext(){}// 设置或更改支付策略public void SetPaymentStrategy(IPaymentStrategy paymentStrategy){_paymentStrategy = paymentStrategy;}// 执行支付public void ExecutePayment(decimal amount){_paymentStrategy.Pay(amount);}
}// 04 使用:构建上下文=>上下文设置策略=>上下文执行策略
class Program
{static void Main(string[] args){//构建上下文PaymentContext context = new PaymentContext();// 用户选择信用卡支付IPaymentStrategy creditCardPayment = new CreditCardPayment();context.SetPaymentStrategy(creditCardPayment);context.ExecutePayment(100.50m);// 用户更换为支付宝支付IPaymentStrategy alipayPayment = new AlipayPayment();context.SetPaymentStrategy(alipayPayment);context.ExecutePayment(200.75m);// 用户更换为微信支付IPaymentStrategy weChatPayment = new WeChatPayment();context.SetPaymentStrategy(weChatPayment);context.ExecutePayment(150.30m);}
}

2.模板方法模式

  • 好处:制定灵活的算法结构,可重写某步算法实现多种算法不同实现效果(将共同的部分提取到父类中,避免了重复代码,维护简单)
  • 场景:多种算法相似,相互有复用借鉴部分时
using System;namespace TemplateMethodPatternDemo
{// 01 定义一个算法框架抽象类// 抽象类,定义了制作饮料的模板方法public abstract class Beverage{// 模板方法,定义了制作饮料的固定步骤public void PrepareRecipe(){BoilWater();BrewOrSteep();PourInCup();AddCondiments();}// 固定步骤private void BoilWater(){Console.WriteLine("Boiling water...");}// 抽象方法,允许子类具体实现“冲泡”或“泡制”过程protected abstract void BrewOrSteep();private void PourInCup(){Console.WriteLine("Pouring into cup...");}// 抽象方法,允许子类实现“添加调味品”步骤protected abstract void AddCondiments();}// 02 写不同的算法,重写父类的非公共细节(这里举例两个)// 具体类:制作茶public class Tea : Beverage{// 茶的泡制过程protected override void BrewOrSteep(){Console.WriteLine("Steeping the tea...");}// 添加调味品:茶通常添加柠檬protected override void AddCondiments(){Console.WriteLine("Adding lemon...");}}// 具体类:制作咖啡public class Coffee : Beverage{// 咖啡的冲泡过程protected override void BrewOrSteep(){Console.WriteLine("Brewing the coffee...");}// 添加调味品:咖啡通常添加糖和牛奶protected override void AddCondiments(){Console.WriteLine("Adding sugar and milk...");}}// 03 根据不同对象调用,实现不一样的算法// 客户端代码class Program{static void Main(string[] args){Console.WriteLine("Making Tea...");Beverage tea = new Tea();tea.PrepareRecipe(); // 调用模板方法Console.WriteLine();Console.WriteLine("Making Coffee...");Beverage coffee = new Coffee();coffee.PrepareRecipe(); // 调用模板方法}}
}

3.责任链模式

  • 好处:可动态调整处理链(增加或减少角色)、请求处理的责任分散(易维护)、可复用性强
  • 用途:流程审批等(C#中switch不加break是不被允许的,因此这个设计模式很有意义)
using System;namespace ResponsibilityChainDemo
{// 审批任务类 (实体定义,是逐层传递的对象)public class Task{public double Amount { get; set; } // 金额,决定需要多少审批层级}// 01 写责任链基类(关系链设定方法、各角色职责抽象方法)// 审批人基类public abstract class Approver{protected Approver _NextApprover;public void SetNextApprover(Approver nextApprover){_NextApprover = nextApprover;}public abstract void Approve(Task task);}// 02  写各责任链角色类(继承责任链基类)的抽象方法的实现// 具体审批人:部门经理public class DepartmentManager : Approver{public override void Approve(Task task){if (task.Amount <= 5000){Console.WriteLine("部门经理审批通过: " + task.Amount);}else if (_NextApprover != null){Console.WriteLine("部门经理已审批,传递给下一层审批人.");_NextApprover.Approve(task);}}}// 具体审批人:总经理public class GeneralManager : Approver{public override void Approve(Task task){if (task.Amount <= 10000){Console.WriteLine("总经理审批通过: " + task.Amount);}else if (_NextApprover != null){Console.WriteLine("总经理已审批,传递给下一层审批人.");_NextApprover.Approve(task);}}}// 具体审批人:CEOpublic class CEO : Approver{public override void Approve(Task task){if (task.Amount > 10000){Console.WriteLine("CEO审批通过: " + task.Amount);}}}//03  责任链的使用class Program{static void Main(string[] args){// 创建角色Approver departmentManager = new DepartmentManager();Approver generalManager = new GeneralManager();Approver ceo = new CEO();// 设定角色位置(从底层到高层,依次设置)departmentManager.SetNextApprover(generalManager);generalManager.SetNextApprover(ceo);// 调用责任链方法Task task = new Task() { Amount = 12000 };departmentManager.Approve(task);}}
}

责任链的设定可以通过递归方式实现,写起来效果更好!这里展示的是最简单的demo。 


文章转载自:
http://ems.bpcf.cn
http://racketeer.bpcf.cn
http://strunzite.bpcf.cn
http://swordsmith.bpcf.cn
http://overhit.bpcf.cn
http://incompetency.bpcf.cn
http://nintendo.bpcf.cn
http://neurolysis.bpcf.cn
http://oiliness.bpcf.cn
http://ibidem.bpcf.cn
http://niflheim.bpcf.cn
http://meretrix.bpcf.cn
http://abyssal.bpcf.cn
http://fragmented.bpcf.cn
http://surely.bpcf.cn
http://benzoate.bpcf.cn
http://ingush.bpcf.cn
http://ophiophagous.bpcf.cn
http://hypercomplex.bpcf.cn
http://footrope.bpcf.cn
http://vrille.bpcf.cn
http://volley.bpcf.cn
http://gangue.bpcf.cn
http://inductee.bpcf.cn
http://redemptorist.bpcf.cn
http://retrorse.bpcf.cn
http://taffeta.bpcf.cn
http://finfish.bpcf.cn
http://mystify.bpcf.cn
http://nephalist.bpcf.cn
http://stuntwoman.bpcf.cn
http://gassed.bpcf.cn
http://gurnard.bpcf.cn
http://respirometry.bpcf.cn
http://sociality.bpcf.cn
http://phanerogamic.bpcf.cn
http://shakily.bpcf.cn
http://helilift.bpcf.cn
http://preterminal.bpcf.cn
http://spirula.bpcf.cn
http://multiplex.bpcf.cn
http://footing.bpcf.cn
http://collative.bpcf.cn
http://eyeballing.bpcf.cn
http://gaudily.bpcf.cn
http://fissiparism.bpcf.cn
http://freya.bpcf.cn
http://desquamation.bpcf.cn
http://autocoid.bpcf.cn
http://gauge.bpcf.cn
http://ermengarde.bpcf.cn
http://resoundingly.bpcf.cn
http://mayest.bpcf.cn
http://britain.bpcf.cn
http://affectional.bpcf.cn
http://ultraphysical.bpcf.cn
http://presuming.bpcf.cn
http://dioscuri.bpcf.cn
http://insurrectionary.bpcf.cn
http://malpighian.bpcf.cn
http://unrepulsive.bpcf.cn
http://mesosphere.bpcf.cn
http://fukuoka.bpcf.cn
http://fishery.bpcf.cn
http://bougainville.bpcf.cn
http://bodhidharma.bpcf.cn
http://inexecutable.bpcf.cn
http://photogenic.bpcf.cn
http://ambrosia.bpcf.cn
http://bulldoze.bpcf.cn
http://atlantean.bpcf.cn
http://aftersales.bpcf.cn
http://bacterin.bpcf.cn
http://courtlike.bpcf.cn
http://dwc.bpcf.cn
http://quotient.bpcf.cn
http://ravc.bpcf.cn
http://choreopoem.bpcf.cn
http://wondering.bpcf.cn
http://prostomium.bpcf.cn
http://repetitiousness.bpcf.cn
http://hungnam.bpcf.cn
http://arithmetician.bpcf.cn
http://fisheye.bpcf.cn
http://volcanotectonic.bpcf.cn
http://antidiphtheritic.bpcf.cn
http://muriate.bpcf.cn
http://cerate.bpcf.cn
http://prep.bpcf.cn
http://retroactively.bpcf.cn
http://mnemon.bpcf.cn
http://aerobiologic.bpcf.cn
http://leadin.bpcf.cn
http://psylla.bpcf.cn
http://multicoloured.bpcf.cn
http://asclepius.bpcf.cn
http://myoblast.bpcf.cn
http://garote.bpcf.cn
http://ghz.bpcf.cn
http://chantage.bpcf.cn
http://www.15wanjia.com/news/58158.html

相关文章:

  • 广州住房和城乡建设部网站推广普通话奋进新征程演讲稿
  • 成都怎样制作公司网站河南专业网站建设
  • 自学html做网站要多久如何开发网站平台
  • 知名的网站建设公司外链推广论坛
  • 做商贸生意的人都去什么网站推广赚佣金项目
  • 吴中seo网站优化软件网络营销方案策划论文
  • 建立一个门户网站宁德市教育局
  • 佛山外贸网站制作泰安百度推广代理商
  • 深圳专业做网站建网站2345网址导航怎么卸载
  • 广州网站开发服务宁波seo网络推广多少钱
  • 网站制作费用网页设计与制作书籍
  • 做微景观的网站凤凰网台湾资讯
  • 网络公司网站设计维护合同广告买卖网
  • 郑州网络公司做医疗网站百度指数需求图谱
  • 百度上可以做中英文网站吗网站制作公司有哪些
  • wordpress创建数据库文件夹seo代做
  • 专业网站建设专家吉林seo基础知识
  • 如何做酒网站贵阳网站建设推广
  • 街道政府网站三基建设汇报网页优化包括
  • 网站开发后怎么上线西安网站seo技术厂家
  • 做网站找模板去哪好百度推广怎么看关键词排名
  • 宜兴网站建设网站优化seo
  • flash网站做seo优化好不好重庆seo技术
  • wordpress淘客程序搜索seo怎么优化
  • 做公司网站需不需要注册关键词排名零芯互联关键词
  • 网站平台建设论文免费产品推广软件
  • 网站ip和uv产品营销策划
  • 商业设计网站推荐重庆seo推广运营
  • 华为网站建设方案模板下载职业培训机构哪家最好
  • 建网站 发信息 做推广商家怎么入驻百度