[19GOF设计模式介绍2.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[19GOF设计模式介绍2

设计模式 GOF Design Patterns Instructor: 叶文来 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. STRATEGY(策略) 问题: 如何设计应对某一算法或业务规则的经常变化 解决方案: 使用独立的类分别定义实现每一种算法/政策/策略,并且这些类具有共同接口(用类实现算法) Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 例:POS定价策略 问题: 销售的定价策略具有多样性,存在大量变化 如某天的折扣、会员的折扣等 不同时期有不同的定价策略 如何对各种各样的算法进行设计? 分析: 如会员折扣、节假日折扣,Sale的其他行为是一样,只是商品定价策略不同 定价策略是一种算法 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 定价策略类 创建多个SalePricingStrategy类,每个类具有同一接口:getTotal方法,对Sale对象作为参数,对sale打折前的价格应用打折规则 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. getTotal定价交互 获取折扣价格的过程 策略对象对于Sale对象有参数可见性 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 语境对象Sale 反过来,Sale对定价策略有属性可见性 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 使用工厂模式创建策略 不同的定价策略会根据时间而变化,由谁来创建定价策略也是个问题 设计工厂对象创建应用中所需的所有策略 通过反射机制,根据外部源指定的定价策略类,实现算法的可插拔 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 定价策略工厂 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 定价策略类的初始值 如折扣定价策略 需要设定一个初始的折扣值 还可能与时间段相关 还可能与购买者类型相关 这些数据存储于外部存储中 该由谁读取,并将其分配给相应策略类? StrategyFactory 其负责创建定价策略类 能够知道从数据存储中读取参数 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. Strategy策略模式 模拟鸭子池塘游戏,系统的核心类图: 如果鸭子需要会飞的功能? Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 在基类增加鸭子会飞的功能,实际的鸭子只需继承就有这项功能 如果系统有不能飞的木头鸭子?,那也会飞起来? Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyri

文档评论(0)

wendan118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档