设计模式_模板方法学案.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目录 《 》 《 》 《 》 《 》 THANK YOU Template Method 模板方法模式 讲解:徐凯锋演示:石东来 PPT:张 伟 概述 结构与分析 模式总结与拓展 实例演示 PPT模板下载:/moban/ 概述 1 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序。但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关。 问题背景 概述 2 在追求妹纸时,一般都包含几个基本固定步骤: 1、认识妹纸 2、和妹纸成为朋友 3、将妹纸变成女朋友 这三板斧是定义好的,你只要按照这个步骤去实现就行了,但针对每个步骤不同的人不同的情况都有不一样的方法,这就要看你随机应变了,随机应变就是具体实现。 比如:追求妹纸 概述 3 如何保证架构逻辑的正常执行,而根据现实需求做对应的具体实现? 问题 上有政策,下有对策 概述 4 模板方法: 模板方法(Template Method Pattern):定义一个操作中的算法的骨架,而将一些具体实现延迟到子类中。 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 解决方案 结构与分析 1 结构 结构与分析 2 模式组成 抽象类(AbstractClass): 定义抽象的原语操作(primitive operation) ,形成一个算法的骨架,实现一个模板方法。 模板方法:一个模板方法是定义在抽象类中的、把基本操作方法组合在一起形成一个总算法或一个总行为的方法。 具体子类 (ConcreteClass): 实现原语操作以完成算法中与特定子类相关的步骤。 基本方法:基本方法是实现算法各个步骤的方法,是模板方法的组成部分。 结构与分析 3 模式组成分析 在模板方法模式的使用过程中,要求开发抽象类和开发具体子类的设计师之间进行协作。一个设计师负责给出一个算法的轮廓和骨架,另一些设计师则负责给出这个算法的各个逻辑步骤。 结构与分析 4 典型抽象类方法 结构与分析 5 典型具体类方法 结构与分析 6 典型模板方法例子 结构与分析 7 典型模板方法例子 结构与分析 8 典型模板方法例子 结构与分析 9 模式作用 准备一个抽象类,将部分逻辑以具体方法的形式实现,然后申明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现 模式总结与拓展 10 钩子方法 @Override public void boolean IsNotPrinted() { return true; } 子类 模式总结与拓展 2 钩子方法 钩子方法给子类留了“后门” 可以通过在子类中实现的钩子方法对父类方法的执行进行约束,实现子类对父类行为的反向控制。 模式总结与拓展 3 模式适用场景 模板方法应用于下列情况: ? 1) 一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。 ? 2)各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。首先识别现有代码中的不同之处,并且将不同之处分离为新的操作。最后,用一个调用这些新的操作的模板方法来替换这些不同的代码。 ? 3)控制子类扩展。模板方法只在特定点调用钩子操作 ,这样就只允许在这些点进行扩展。 模式总结与拓展 4 模式优点 1)模板方法模式在一个类中形式化地定义算法,而由它的子类实现细节的处理。 2)模板方法是一种代码复用的基本技术。它们在类库中尤为重要,它们提取了类库中的公共行为。 3)模板方法模式导致一种反向的控制结构,这种结构有时被称为“好莱坞法则” ,即“别找我们,,我们找你”通过一个父类调用其子类的操作(而不是相反的子类调用父类)。模板方法必须是public的,子类不能覆写一个被定义为final的方法,所以说符合“开闭原则” 模式总结与拓展 5 模式缺点 每个不同的实现都需要定义一个子类,这会导致类的个数增加,系统更加庞大,设计也更加抽象,但是更加符合“单一职责原则”,使得类的内聚性得以提高。 实例与演示 1 具体应用 泡茶与冲咖啡 目录 《 》 《 》 《 》 《 》 THANK YOU

文档评论(0)

我是追梦人 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档