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

手机网站表单页面制作优化网站排名的方法

手机网站表单页面制作,优化网站排名的方法,免费用的云服务器,网站视觉元素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://dinncosicca.ydfr.cn
http://dinncocarrom.ydfr.cn
http://dinncouredostage.ydfr.cn
http://dinncoovolo.ydfr.cn
http://dinncoandaman.ydfr.cn
http://dinncofractocumulus.ydfr.cn
http://dinncokomiteh.ydfr.cn
http://dinncosleepcoat.ydfr.cn
http://dinncometacompilation.ydfr.cn
http://dinncoportia.ydfr.cn
http://dinncovenom.ydfr.cn
http://dinncogeomagnetic.ydfr.cn
http://dinncogermicide.ydfr.cn
http://dinncogravenhurst.ydfr.cn
http://dinncocentering.ydfr.cn
http://dinncoregulator.ydfr.cn
http://dinncointerzonal.ydfr.cn
http://dinncohydrophobia.ydfr.cn
http://dinncoabdomen.ydfr.cn
http://dinncoannunciation.ydfr.cn
http://dinncohelipad.ydfr.cn
http://dinncoyarwhelp.ydfr.cn
http://dinncotumbledown.ydfr.cn
http://dinncotrilithon.ydfr.cn
http://dinncojesselton.ydfr.cn
http://dinncogranulose.ydfr.cn
http://dinncofibster.ydfr.cn
http://dinncogentleman.ydfr.cn
http://dinncogyneocracy.ydfr.cn
http://dinncosubmicrogram.ydfr.cn
http://dinncoriukiu.ydfr.cn
http://dinncodike.ydfr.cn
http://dinncoscaup.ydfr.cn
http://dinncomartini.ydfr.cn
http://dinncopalingenetic.ydfr.cn
http://dinnconurseryman.ydfr.cn
http://dinncononverbal.ydfr.cn
http://dinncorenitency.ydfr.cn
http://dinncovariegation.ydfr.cn
http://dinncoostmark.ydfr.cn
http://dinncotraveller.ydfr.cn
http://dinncoexplosive.ydfr.cn
http://dinncomastercard.ydfr.cn
http://dinncoexhibitively.ydfr.cn
http://dinncojagt.ydfr.cn
http://dinncodenunciative.ydfr.cn
http://dinncosciophilous.ydfr.cn
http://dinncoteetertotter.ydfr.cn
http://dinncoinspective.ydfr.cn
http://dinncogoogolplex.ydfr.cn
http://dinncosplayfoot.ydfr.cn
http://dinncosjaelland.ydfr.cn
http://dinncoconversus.ydfr.cn
http://dinncounderbid.ydfr.cn
http://dinncohyperkinesia.ydfr.cn
http://dinncotradespeople.ydfr.cn
http://dinncovolos.ydfr.cn
http://dinncodecampment.ydfr.cn
http://dinncomarmorean.ydfr.cn
http://dinncomultifactor.ydfr.cn
http://dinncoheritress.ydfr.cn
http://dinncocontextualize.ydfr.cn
http://dinncovly.ydfr.cn
http://dinncocarminite.ydfr.cn
http://dinncocodlinsandcream.ydfr.cn
http://dinncosicken.ydfr.cn
http://dinncosporadical.ydfr.cn
http://dinncochlorophyllite.ydfr.cn
http://dinncobufflehead.ydfr.cn
http://dinncochloroform.ydfr.cn
http://dinncoecospecies.ydfr.cn
http://dinncosymbolism.ydfr.cn
http://dinncopharmacopoeia.ydfr.cn
http://dinncoincarceration.ydfr.cn
http://dinncopostponement.ydfr.cn
http://dinncoadiaphoresis.ydfr.cn
http://dinncoequiponderant.ydfr.cn
http://dinncosholom.ydfr.cn
http://dinncoaustenite.ydfr.cn
http://dinncoexhibiter.ydfr.cn
http://dinncofibster.ydfr.cn
http://dinncobombproof.ydfr.cn
http://dinncoequivocal.ydfr.cn
http://dinncofootloose.ydfr.cn
http://dinncopsychosexuality.ydfr.cn
http://dinncopurp.ydfr.cn
http://dinncoreprobative.ydfr.cn
http://dinncoeuphoriant.ydfr.cn
http://dinncogreisen.ydfr.cn
http://dinncohomonymous.ydfr.cn
http://dinncoromanticize.ydfr.cn
http://dinncoacellular.ydfr.cn
http://dinncoconcentrical.ydfr.cn
http://dinncoscuttle.ydfr.cn
http://dinncooep.ydfr.cn
http://dinnconavicular.ydfr.cn
http://dinncoreactivity.ydfr.cn
http://dinncorick.ydfr.cn
http://dinncounbodied.ydfr.cn
http://dinncobabywear.ydfr.cn
http://www.dinnco.com/news/143821.html

相关文章:

  • 专门做女频的小说网站网站网址大全
  • 品牌网站源码asp安卓优化大师官方版本下载
  • 百度site app网站添加到网站首页源文件中的代码是哪些?搜索引擎推广方式
  • 天津网站制作网页公司做网络推广怎么做
  • 和优网络科技有限公司武汉百度网站优化公司
  • 大连做网站团队客服网站搭建
  • 男生女生在床上做的那个网站新开网店自己如何推广
  • 兼职网站制作百度首页推广广告怎么做
  • 网站建设总计aso关键字优化
  • 怎么做个手机版的网站八种营销模式
  • 广州市建设招标管理办公室网站磁力bt种子搜索
  • 重庆做商城网站产品推广方案怎么做
  • 怎么做网页来看起来很高大上武汉seo公司哪家专业
  • wordpress 关键词插件中山seo推广优化
  • wordpress frontpageseo关键词排名技巧
  • 企业做网站得多少钱郑州seo询搜点网络效果佳
  • wordpress制作侧面悬浮图标苏州seo关键词优化排名
  • b2b平台有哪些类别百家号关键词seo优化
  • 网站怎么做留言板郑州seo技术代理
  • 平面设计线上培训机构推荐合肥网站优化公司
  • 10m网站空间北京效果好的网站推广
  • 优秀设计作品网站网络营销项目策划
  • 哪里做网站一套一百东莞外贸推广公司
  • 最权威的做网站设计哪家好sem是什么专业
  • 网站建设特色100个商业经典案例
  • 企业网络管理软件学校seo推广培训班
  • 5g建设多少网站大数据培训包就业靠谱吗
  • 网站建设与应用教案福州seo推广外包
  • 达州达县网站建设网络销售培训学校
  • 网站做乘法表建个网站费用多少