1、意图

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

2、适用性

(1)一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现

(2)各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。

(3)控制子类扩展

3、参与者

(1)AbstractClass:定义抽象的原语操作,具体的子类将重定义它们以实现一个算法的各个步骤;实现一个模板方法,定义一个算法的骨架

(2)ConcreteClass:实现原语操作以完成算法中与特定子类相关的步骤

4、协作 

ConcreteClass靠AbstractClass来实现算法中不变的步骤

行为模式之Template Method模式相关推荐

  1. Strategy模式和Template Method模式的异同浅析

    一.Strategy模式 1. 特点说明: 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换. 适用场景: 许多相关的类仅仅是行为有异."策略"提供了一种用多个行为中的 ...

  2. 对Strategy与Template Method模式的区别的一些讨论

    准备抛弃自己原本在用的另一个blog了,开始把原本的一些文转过来. 这篇是[misc] 前两天与axx大聊天的一些记录. 转载开始: 10/02 2007, 星期二 主要是对Strategy与Temp ...

  3. 设计模式学习笔记(八)—Template Method模式

    factory模式(包括简单工厂和抽象工厂),Strategy模式,Template method模式是学习Spring框架必不可少的. <设计模式>一书对Template Method模 ...

  4. Template Method模式

    factory模式(包括简单工厂和抽象工厂),Strategy模式,Template method模式是学习Spring框架必不可少的. <设计模式>一书对Template Method模 ...

  5. C++设计模式 之 “组件协作”模式:Template Method、Strategy、Observer

    "组件协作"模式: #现代软件专业分工之后的第一个结果是"框架与应用程序的划分","组件协作"模式通过晚期绑定,来实现框架与应用程序之间的松 ...

  6. 设计模式--模板方法(Template Method)模式

    模式定义 定义一个操作的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法某些特定步骤 类图 要点总结 Template Method模式是一种非常基础性的设计模式, ...

  7. 『设计模式』瑞幸咖啡还是星巴克,一杯下午茶让我明白 设计模式--模板方法模式(Template Method Pattern)

    23种设计模式+额外常用设计模式汇总 (持续更新) 简介 Define the skeleton of an algorithm in an operation,deferring some step ...

  8. 白话设计模式--行为型模式--Template Method模式(模板方法模式)

    结构型模式就这么结束了,行为型模式就这么开始了. 首先就是最简单最容易最常用的Template Method模式. 我们怎么定义 Template Method模式呢?简单来说,就是先定义一个骨架(框 ...

  9. 行为型设计模式(2)—— 模板方法模式(Template Method Pattern)

    文章目录 1.概述 2.简单实现 3.使用场景和优缺点 4.小结 参考文献 1.概述 使用设计模式可以提高代码的可复用性.可扩充性和可维护性. 模板方法模式(Template Method Patte ...

最新文章

  1. 通过grub硬盘安装centos7
  2. 网络巨头秘修域名重大疏漏 互联网免遭黑客控制
  3. 【图像分类】从数据集和经典网络开始
  4. 5个趣味Python练手项目
  5. 消息称苹果正开发基于自研ARM芯片的游戏主机
  6. ACS被集成到了Windows Azure Management Portal中
  7. android webview 选择图片上传,Android webview打开本地图片上传实现代码
  8. 凯利KAC交流控制器调试方案
  9. 曾国藩修身十三条,值得学习
  10. 最新苹果手机使用iTunes换手机铃声2017
  11. java socket连接超时_Java中Socket设置连接超时的代码
  12. Qlikview出现异常重复计数的解决办法
  13. 掌薪阁分享:一个人人可做,汇聚了全网不同层次的网赚项目!
  14. 日语学习之——五十音图
  15. 英语语法最终珍藏版笔记-10动名词
  16. css 设置背景图一半_img只显示图片一部分 或 css设置背景图片只显示图片指定区域...
  17. 赵丽5500 第一节课
  18. NepCTF web-little_trick
  19. Unity 2D平面显示3D模型(RenderTextrue)
  20. OpenGL,glx,glaux,glut,freeglut,glew,glfw,mesa

热门文章

  1. 利用curl并发来提高页面访问速度
  2. URAL 1993 This cheeseburger you don't need
  3. APUE读书笔记-第14章-高级I/O
  4. ip地址检查正则表达式 兼容ipv4,ipv6
  5. python3.6安装教程-python3.6环境安装+pip环境配置教程图文详解
  6. python数据结构推荐书-「算法与数据结构」从入门到进阶吐血整理推荐书单
  7. 为什么叫python编程-月薪上万的Python编程,为什么你还没入门就放弃了?
  8. 哪里可以接到python的活干-学了Python以后,我干了很多不是人干的活
  9. 自学python爬虫要多久-Python爬虫要学多久,给初学编程者的建议
  10. python怎么导入视频-python中的导入如何使用,以及.和..相对导入的使用