4 策略模式幻灯片.pptVIP

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
策略模式 策略模式 //抽象策略类 abstract class Strategy { //算法方法 public abstract void AlgorithmInterface(); } 策略模式 //具体策略类A class ConcreteStrategyA : Strategy { //算法A实现方法 public override void AlgorithmInterface() { Console.WriteLine(算法A实现); } } //具体策略类B class ConcreteStrategyB : Strategy { //算法B实现方法 public override void AlgorithmInterface() { Console.WriteLine(算法B实现); } } 策略模式 //具体策略类C class ConcreteStrategyC : Strategy { //算法A实现方法 public override void AlgorithmInterface() { Console.WriteLine(算法C实现); } } 策略模式 //用一个Context环境类,维护对一个Strategy对象的引用 class Context { Strategy strategy; public Context(Strategy strategy) { this.strategy = strategy; } public void ContextInterface() { strategy.AlgorithmInterface(); } } 初始化时,传入具体的策略对象 根据具体的策略对象,调用其方法 策略模式 static void Main(string[] args) //客户端代码 { Context context; context = new Context(new ConcreteStrategyA()); context.ContextInterface(); context = new Context(new ConcreteStrategyB()); context.ContextInterface(); context = new Context(new ConcreteStrategyC()); context.ContextInterface(); Console.Read(); } 简单工厂模式:传条件进工厂类,工厂类就会返回一个对象给调用者,供调用者使用---最终给用户使用的是工厂类返回的类 策略模式:创建一个Context类(可以看作是工厂模式中工厂类的代替品)的对象A,传一个要使用的策略实例对象给A,然后使用A调用A中的某些方法---最终给用户用的是Context类 简单的说,工厂有进货也有出货,然后使用出货。策略有进货没出货,然后使用得货者。 商场收银软件-策略模式 * 策略模式 LOREM IPSUM DOLOR 商场收银软件 “小菜,给你个作业,做一个商场收银软件,营业员根据客户所购买商品的单价和数量,向客户收费。” “就这个?没问题呀。”小菜说,“用两个文本框来输入单价和数量,一个确定按钮来算出每种商品的费用,用个列表框来记录商品的清单,一个标签来记录总计,对,还需要一个重置按钮来重新开始,不就行了?!” 商场收银软件 商场收银系统V1.0关键代码如下: double total = 0.0d; private void btnOk_Click(object sender, EventArgs e) { double totalPrices=Convert.ToDouble(txtPri

文档评论(0)

jiquhe72163 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档