第三讲策略模式课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第三讲策略模式课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 策略 模式 课件
- 资源描述:
-
1、第三章第三章 策略模式策略模式韩韩 格格2011年年3月月提纲提纲3.1 问题描述问题描述3.2 典型案例典型案例 3.3 策略模式策略模式3.4 效果与适应性效果与适应性3.1 问题描述问题描述 w 问题问题-在处理客户相同的业务时,可能有不同的逻辑处理算在处理客户相同的业务时,可能有不同的逻辑处理算法。客户需要多种不同的算法实现。法。客户需要多种不同的算法实现。-客户希望在运行时根据上下文选择其中一个算法。使客户希望在运行时根据上下文选择其中一个算法。使用算法的类变得复杂而难于维护,尤其当需要支持多用算法的类变得复杂而难于维护,尤其当需要支持多种算法且每种算法都很复杂时问题会更加严重;种算
2、法且每种算法都很复杂时问题会更加严重;-不同时候需要不同的算法,支持并不使用的算法可能不同时候需要不同的算法,支持并不使用的算法可能带来性能的负担;带来性能的负担;-算法的实现和使用算法的对象紧紧耦合在一起,使新算法的实现和使用算法的对象紧紧耦合在一起,使新增算法或修改算法变得十分困难,系统应对变化的能增算法或修改算法变得十分困难,系统应对变化的能力很差。力很差。3.1 问题描述问题描述w方法方法-依据面向对象的思想,我们所能想到的办法就依据面向对象的思想,我们所能想到的办法就是将每种算法的实现都剥离出来构成一个个独是将每种算法的实现都剥离出来构成一个个独立的算法对象,再从这些算法对象中抽象出
3、公立的算法对象,再从这些算法对象中抽象出公共的算法接口,最后将算法接口组合到使用算共的算法接口,最后将算法接口组合到使用算法的类中。上述思路就引入了一个新的设计模法的类中。上述思路就引入了一个新的设计模式策略模式。式策略模式。3.2 典型案例典型案例w 超市打折收银软件超市打折收银软件为提高超市收益,超市开展促销活动。除了正常收费方式为提高超市收益,超市开展促销活动。除了正常收费方式外,添加对某些产品打折收费和满额返现收费方式。例如:外,添加对某些产品打折收费和满额返现收费方式。例如:商品打商品打8折、打折、打7折、满折、满300元消费返回元消费返回100元、满元、满500返返200。实现能够
4、计算总收费额度的功能。实现能够计算总收费额度的功能。如何添加和修改如何添加和修改各式各样的多种各式各样的多种收费方式收费方式?3.2 典型案例典型案例3.2 典型案例典型案例w 收银软件设计类图收银软件设计类图CashContext+GetResult():doubleCashNormal+acceptCash():doubleCashSuper+acceptCash():doubleCashRebate+acceptCash():doubleCashReturn+acceptCash()3.2 典型案例典型案例abstract class CashSuper /收取现金的父类收取现金的父类
5、public abstract double AcceptCash(double cash);class CashRebate:CashSuper /按一定打折率收取现金类按一定打折率收取现金类 private double discount=1.0;public CashRebate(double _discount)discount=_discount;public override double AcceptCash(double cash)return cash*discount;w 部分核心源码部分核心源码3.2 典型案例典型案例 public virtual GroupBox Cr
展开阅读全文