其目的在于抽象出一个行为的步骤模板,具体实现则有子类实现
比如不论开什么车的步骤都是点火,挂挡,松手刹

public abstract class Game {abstract void initialize();abstract void startPlay();abstract void endPlay();//模板public final void play(){//初始化游戏initialize();//开始游戏startPlay();//结束游戏endPlay();}
}public class Cricket extends Game {@Overridevoid endPlay() {System.out.println("Cricket Game Finished!");}@Overridevoid initialize() {System.out.println("Cricket Game Initialized! Start playing.");}@Overridevoid startPlay() {System.out.println("Cricket Game Started. Enjoy the game!");}
}public class Football extends Game {@Overridevoid endPlay() {System.out.println("Football Game Finished!");}@Overridevoid initialize() {System.out.println("Football Game Initialized! Start playing.");}@Overridevoid startPlay() {System.out.println("Football Game Started. Enjoy the game!");}
}public class TemplatePatternDemo {public static void main(String[] args) {Game game = new Cricket();game.play();System.out.println();game = new Football();game.play();      }
}

如上所示,一些方法步骤通用,底层实现不一样的时候用模板模式
使用场景
1、有多个子类共有的方法,且逻辑相同。
2、重要的、复杂的方法,可以考虑作为模板方
优点
1、封装不变部分,扩展可变部分。‘’
2、提取公共代码,便于维护。
3、行为由父类控制,子类实现。
缺点:
每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。

设计模式系统回顾(4)模板模式相关推荐

  1. 设计模式:行为型-模板模式

    目录 第一章 模板模式介绍 第二章 模板模式实现 2.1.抽象父类 2.2.具体子类 2.3.测试类 第三章 模板模式应用 项目地址:https://gitee.com/caochenlei/desi ...

  2. C++设计模式详解之模板模式解析

    C++ 模板方法模式解析 模板方法模式定义 模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现 模板方法模式实例 以考试为例,考数学和考语文的过程几乎都是一样的,就是准备考试,背书,写试 ...

  3. 设计模式回顾——模板模式(C++)

    文章目录 1 前言 2 什么是模板模式 2.1 模板模式组成 2.2 模板模式UML图 2.3 模板模式作用 3 模板模式优缺点 4 什么地方使用模板模式 5 模板模式实现 6 模板模式与策略模式比较 ...

  4. 设计模式之模板模式和工厂模式

    模板模式和工厂模式的类别分类为"交给子类",即两种设计模式都是通过子类来实现具体的功能.主角是子类,而不像上次的适应设计模式,主角是连接器.这种差别着重体现在我们在工业设计中对需求 ...

  5. Java设计模式(16)中介模式(Mediator模式)

    Mediator定义:用一个中介对象来封装一系列关于对象交互行为. 为何使用Mediator模式/中介模式 各个对象之间的交互操作非常多,每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉 ...

  6. Java设计模式(1)工厂模式(Factory模式)

    工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因 ...

  7. Java设计模式(10)代理模式(Proxy模式)

    理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣. Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,P ...

  8. Java设计模式(8)组合模式(Composite模式)

    Composite定义:将对象以树形结构组织起来,以达成"部分-整体" 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性. Composite比较容易理解,想到Compo ...

  9. 【设计模式系列】行为型之模板模式

    目录 理论 实践 总结 理论 1.模板模式:定义一个操作算法中的框架,而将这些步骤延迟加载到子类中. 模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤: 2.角色: 抽象模板 ...

最新文章

  1. R语言使用ggExtra包的ggMarginal函数在散点图的顶部和右侧添加边缘直方图、自定义边缘直方图不同分组的填充色(Coloring Marginal Histograms)
  2. spyder 断点调试python代码
  3. python爬虫完整实例-python爬虫实战之爬取京东商城实例教程
  4. blender 子弹时间 动画
  5. 锁定文件失败 打不开磁盘“D:\vms\S1\CentOS 64 位.vmdk”或它所依赖的某个快照磁盘(强制关机后引起的问题)...
  6. base64的php文件上传,PHP传统文件上传和Base64位文件上传
  7. STM32F7xx —— ADC
  8. substr php,PHP substr() 函数
  9. c语言条件判断!,if条件判断语句,谁能帮我分析一下?
  10. 一起学爬虫——如何爬取通过ajax加载数据的网站
  11. 图像处理、语音处理的应用及前沿技术_自主知识产权的2微米级3D视觉相机应用于高精度和高反光物体的缺陷检测...
  12. cnn输入层_基于 CNN 的文本分类算法
  13. OpenCV(一)---支持向量机 SVM
  14. 数组的数据查找c语言,【查找数组面试题】面试问题:c语言实现数据… - 看准网...
  15. pymysql executemany()函数
  16. C语言笔记 清屏(循环时不一闪一闪的) 光标移动到任意位置 带注释(详细)
  17. xy苹果助手未受信任_【iOS教程】不用电脑 安装苹果软件
  18. 动态考勤表-日期只能在某个月选时间段
  19. iphone免越狱!使用filza修改设备型号!支持最高ios14.3
  20. CommonAPI新版本配置

热门文章

  1. Tsinsen D486 蓝雨
  2. Java POI 导出 Excel 单元格 合并单元格 相邻的相同值 合并
  3. 贫穷限制了想象:富豪200亿房产当摆设,贫民窟1440人共用一厕所
  4. C - Fewest Flops
  5. java问题解读,String类为什么是final的
  6. 电脑怎么打出冒号符号_冒号的用法有哪些?写作文的时候冒号怎么用?冒号在电脑上怎么打出来?...
  7. Excel|5个神技巧,提高你的数据分析效率~
  8. linux上怎么实现ssh免密登录
  9. AutoSAR系列讲解(入门篇)5.2-描述文件
  10. 程序员值得关注的微信公众号