设计模式之策略模式与模板模式ppt课件_第1页
设计模式之策略模式与模板模式ppt课件_第2页
设计模式之策略模式与模板模式ppt课件_第3页
设计模式之策略模式与模板模式ppt课件_第4页
设计模式之策略模式与模板模式ppt课件_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、设计方式之战略方式主讲人 :成 玉 丹时 间:2021.11.14目 录 Contents1234定义和角色构造表示图例如代码实例阐明5优缺陷环境定义: 战略方式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互交换。战略方式让算法独立于运用它的客户而独立变化。定义和角色构造表示图例如代码实例阐明优缺陷和环境角色三种:战略接口:用来约束一系列详细的战略算法。战略实现:就是详细的算法实现。上下文:担任和详细的战略类交互,通常上下文会持有一个真正的战略实现。还可以让详细的战略类来获取上下文的数据,甚至让详细的战略类来获取上下文的数据。角色之间的关系:上下文运用战略接口来调用详细的战略

2、实现定义的算法。定义和角色构造表示图例如代码实例阐明优缺陷和环境目 录 Contents1234定义和角色构造表示图例如代码实例阐明5优缺陷和环境战略实现算法实现定义和角色构造表示图例如代码实例阐明优缺陷和环境目 录 Contents1234定义和角色构造表示图例如代码实例阐明5优缺陷和环境1、战略接口:定义算法的接口:调用详细的算法定义和角色构造表示图例如代码实例阐明优缺陷和环境2、战略实现:在详细的算法实现中,定义了三个,分别是ConcreteStrategyA、ConcreteStrategyB、ConcreteStrategyC,例如非常简单,由于没有详细算法的实现,三者也就是称号不同

3、,例如代码如下:定义和角色构造表示图例如代码实例阐明优缺陷和环境3、上下文的实现:例如代码如下例如上文提到A,B,C三个对象定义和角色构造表示图例如代码实例阐明优缺陷和环境目 录 Contents1234定义和角色构造表示图例如代码实例阐明5优缺陷和环境实例:报价管理问题向客户报价,对于销售部门的人来讲,这是一个非常艰苦、非常复杂的问题,对不同的客户要报不同的价钱,例如有新客户、老客户、大客户等。为了演示的简约性,假定如今需求实现一个简化的报价管理,实现如下的功能:1对普通客户或者是新客户报全价2对老客户报的价钱,一致折扣5%3对大客户报的价钱,一致折扣10%该怎样实现呢?定义和角色构造表示图

4、例如代码实例阐明优缺陷和环境1、不用方式的处理方案:这种处理方案存在的问题:价钱类包含了一切计算报价的算法,使得价钱类,尤其是报价这个方法比较庞杂,难以维护。定义了计算价钱的算法定义和角色构造表示图例如代码实例阐明优缺陷和环境2、不用方式的修正方案:把这些算法从报价方法里面拿出去,构成独立的方法。据此写出如下的实现代码,例如代码如下:把算法从报价方法里拿出去,构成独立的方法,这里调用了算法定义和角色构造表示图例如代码实例阐明优缺陷和环境新客户和普通客户老客户大客户这样做的优点是:容易扩展,较好的维护。缺陷是:假设有100种情况时,怎样做?定义和角色构造表示图例如代码实例阐明优缺陷和环境3、战略

5、方式下的处理方案:要运用战略方式来重写前面报价的例如,大致有如下改动:首先需求定义出算法的接口。战略接口然后把各种报价的计算方式单独出来,构成算法类。战略实现对于Price这个类,把它当做上下文,在计算报价的时候,不再需要判别,直接运用持有的详细算法进展运算即可。选择运用哪一个算法的功能挪出去,放到外部运用的客户端去。上下文实例的结构图定义和角色构造表示图例如代码实例阐明优缺陷和环境先看战略接口,例如代码如下:定义和角色构造表示图例如代码实例阐明优缺陷和环境 接下来看看详细的算法实现,不同的算法,实现也不一样,先看为新客户或者是普通客户计算应报的价钱的实现,例如代码如下:定义和角色构造表示图例

6、如代码实例阐明优缺陷和环境老客户计算应报的价钱的实现,例如代码如下:定义和角色构造表示图例如代码实例阐明优缺陷和环境大客户计算应报的价钱的实现,例如代码如下:定义和角色构造表示图例如代码实例阐明优缺陷和环境接下来看看上下文的实现,也就是原来的价钱类,它的变化比较大,主要有:原来那些私有的,用来做不同计算的方法,曾经去掉了,独立出去做成了算法类原来报价方法里面,对详细计算方式的判别,去掉了,让客户端来完成选择详细算法的功能新添加持有一个详细的算法实现,经过构造方法传入原来报价方法的实现,变化成了转调详细算法来实现定义和角色构造表示图例如代码实例阐明优缺陷和环境定义和角色构造表示图例如代码实例阐明

7、优缺陷和环境写个客户端来测试运转一下,例如代码如下:定义和角色构造表示图例如代码实例阐明优缺陷和环境目 录 Contents1234定义和角色构造表示图例如代码实例阐明5优缺陷和环境优点:1、 战略方式提供了管理相关的算法族的方法。恰当运用承继可以把公共的代码转移到父类里面,从而防止反复的代码。2、 战略方式提供了可以交换承继关系的方法。承继可以处置多种算法或行为。3、 运用战略方式可以防止运用多重条件转移语句。假设采用多重转移语句将不易维护.定义和角色构造表示图例如代码实例阐明优缺陷和环境缺陷:1、客户端必需知道一切的战略类,并自行决议运用哪一个战略类。换言之,战略方式只适用于客户端知道一切

8、的算法或行为的情况。2、 战略方式呵斥很多的战略类,每个详细战略类都会产生一个新类,使得战略类变得很复杂。定义和角色构造表示图例如代码实例阐明优缺陷和环境运用环境: 1、实现某特定功能在不同的情况下采用不同的战略即算法,程序在运转时动态选择所要采用的战略。 2、对客户端完全隐藏算法的详细实现细节。 3、不同种算法之间可以彼此交换且完全独立。定义和角色构造表示图例如代码实例阐明优缺陷和环境设计方式之模板方法方式主讲人 :孙 晗时 间:2021.11.14目 录 Contents1234定义和角色构造表示图优缺陷和环境实例阐明5区别与联络定义:一个笼统类中,有一个主方法,再定义1n个方法,这些方法

9、可以是笼统的,也可以是详细的;定义一个类,承继该笼统类,重写笼统方法,经过调用笼统类,实现对子类的调用。意图:模板方法方式是在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中实现。模板方法使得子类可以在不改动算法构造的情况下,重新定义算法中的某些步骤。定义和角色构造表示图实例阐明区别与联络优缺陷和环境角色两种:笼统模板类:定义了一个或多个笼统操作,以便让子类实现。这些笼统操作叫做根本操作,它们是一个顶级逻辑的组成步骤定义并实现了一个模板方法详细模板类:现父类所定义的一个或多个笼统方法每一个笼统模板类都可以有恣意多个详细模板类与之对应,而每一个详细模板类都可以给出这些笼统方法的不同实现,从

10、而使得顶级逻辑的实现各不一样定义和角色构造表示图实例阐明区别与联络优缺陷和环境方法两种:模板方法:一个模板方法是定义在笼统类中的,把根本操作方法组合在一同构成一个总算法或一个总行为的方法。一个笼统类可以有恣意多个模板方法,而不限于一个。每一个模板方法都可以调用恣意多个详细方法。根本方法:笼统方法:由笼统类声明,由详细子类实现,java言语中以abstract关键字标出来。详细方法:由笼统类声明并实现,而子类并不实现或置换,java中没有abstract关键字。钩子方法:有笼统类声明并实现,而子类会加以扩展。通常笼统类给出的实现是一个空实现,作为方法的默许实现。因此,此方法的存在,可以让子类有才

11、干对算法的不同点进展挂钩,要不要挂钩,由子类自行决议。定义和角色构造表示图实例阐明区别与联络优缺陷和环境目 录 Contents1234定义和角色构造表示图优缺陷和环境实例阐明5区别与联络定义和角色构造表示图实例阐明区别与联络优缺陷和环境目 录 Contents1234定义和角色构造表示图优缺陷和环境实例阐明5区别与联络创建一个模板(笼统)类:Beverage(饮料)模板方法给出了逻辑的骨架,而逻辑的组成是一些相应的笼统操作,他们推迟到子类中去实现定义和角色构造表示图实例阐明区别与联络优缺陷和环境这就实现了模板方法中最重要的类的承继和方法的复用创建一个咖啡类(Coffee)和茶(Tea)类,都

12、承继Beverage笼统类,而各个方法的详细实现方式都不同定义和角色构造表示图实例阐明区别与联络优缺陷和环境运转结果测试类定义和角色构造表示图实例阐明区别与联络优缺陷和环境目 录 Contents1234定义和角色构造表示图优缺陷和环境实例阐明5区别与联络优点1模板方法方式经过把不变的行为搬移到超类,去除了子类中的反复代码。子类实现算法的某些细节,有助于算法的扩展和代码复用。2经过一个父类调用子类实现的操作,经过子类扩展添加新的行为,符合“开放-封锁原那么。3运用模板方法是系统扩展性得到加强,最小化了变化对系统的影响。定义和角色构造表示图实例阐明区别与联络优缺陷和环境缺陷1每个不同的实现都需求定义一个子类,这会导致类的个数的添加,也会添加很多详细方法的数量,使设计更加笼统。2假设选用的实现方式不当,复用情况会很差。定义和角色构造表示图实例阐明区别与联络优缺陷和环境运用范围:子类具有一致的操作步骤或操作过程;子类具有不同的操作细节;存在多个具有同样操作步骤的运用场景,但某些详细的操作细节却各不一样。定义和角色构造表示图实例阐明区别与联络优缺陷和环境目 录 Contents1234定义和角色构造表示图优缺陷和环境实例阐

温馨提示

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

评论

0/150

提交评论