3第三章 策略模式.ppt_第1页
3第三章 策略模式.ppt_第2页
3第三章 策略模式.ppt_第3页
3第三章 策略模式.ppt_第4页
3第三章 策略模式.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章策略模式 韩格2011年3月 提纲 3 1问题描述3 2典型案例3 3策略模式3 4效果与适应性 3 1问题描述 问题在处理客户相同的业务时 可能有不同的逻辑处理算法 客户需要多种不同的算法实现 客户希望在运行时根据上下文选择其中一个算法 使用算法的类变得复杂而难于维护 尤其当需要支持多种算法且每种算法都很复杂时问题会更加严重 不同时候需要不同的算法 支持并不使用的算法可能带来性能的负担 算法的实现和使用算法的对象紧紧耦合在一起 使新增算法或修改算法变得十分困难 系统应对变化的能力很差 3 1问题描述 方法依据面向对象的思想 我们所能想到的办法就是将每种算法的实现都剥离出来构成一个个独立的算法对象 再从这些算法对象中抽象出公共的算法接口 最后将算法接口组合到使用算法的类中 上述思路就引入了一个新的设计模式 策略模式 3 2典型案例 超市打折收银软件为提高超市收益 超市开展促销活动 除了正常收费方式外 添加对某些产品打折收费和满额返现收费方式 例如 商品打8折 打7折 满300元消费返回100元 满500返200 实现能够计算总收费额度的功能 如何添加和修改各式各样的多种收费方式 3 2典型案例 3 2典型案例 收银软件设计类图 3 2典型案例 abstractclassCashSuper 收取现金的父类 publicabstractdoubleAcceptCash doublecash classCashRebate CashSuper 按一定打折率收取现金类 privatedoublediscount 1 0 publicCashRebate double discount discount discount publicoverridedoubleAcceptCash doublecash returncash discount 部分核心源码 3 2典型案例 publicvirtualGroupBoxCreateGroupBox Stringtitle Controlcontrol GroupBoxgb newGroupBox gb Text title gb Dock DockStyle Fill gb Controls Add control control Dock DockStyle Fill returngb publicvirtualPanelCreatePanel Panelpl newPanel pl BackColor Color White pl Paint newPaintEventHandler pl Paint returnpl protectedvoidpl Paint objectsender PaintEventArgspea intnPoint 101 doublew Panel sender Width 1 doubleh Panel sender Height 1 Point points newPoint nPoint for inti 0 i nPoint i doublet double i nPoint 1 points i X int t w points i Y int 4 h t 5 t 5 Penp newPen Color Black Graphicsg pea Graphics g DrawLines p points 3 3策略模式 策略模式 Strategy 它定义了算法家族 分别对其封装起来 通过基类让它们之间可以相互替换 而算法的变化不会影响到使用算法的客户 3 3策略模式 3 4效果与适应性 优点策略模式定义一系列算法 从概念上来看 所有这些算法都是完成相同或相似的工作 只是实现不同 它能以相同的方式调用所有算法 减少各种算法类与使用算法类之间的耦合 策略模式的Strategy类层次为Context定义了一系列的可供重用的算法或行为 因为继承有助于析取出这些算法的公共功能 3 4效果与适应性 策略模式也化简了单元测试 因为每一个算法都在一个类内 可以通过自己的接口单独测试 缺点客户端必须知道所有的策略类 并自行决定使用哪一个策略类 这就意味着客户端必须理解这些算法的区别 以便适时选择恰当的算法类 换言之 策略模式只适用于客户端知道所有的算法或行为的情况 策略模式造成很多的策略类 有时候可以通过把依赖于环境的状态保存到客户端里面 而将策略类设计成可共享的 这样策略类实例可以被不同客户端使用 换言之 可以使用享元模式来减少对象的数量 3 4效果与适应性 适用范围策略模式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论