23.模版模式
2019-08-27 11:30 zhongj 阅读(167) 评论(0) 编辑 收藏 举报- 一、角色
- 抽象父类(AbstractClass):实现了模板方法,定义了算法的骨架
- 具体类(ConcreteClass):实现抽象类中的抽象方法,即不同的对象的具体实现细节
- 二、适用场景
- 有多个子类共有的方法,且逻辑相同
- 重要的、复杂的方法,可以考虑作为模板方法
- 三、实例
- 图1是一个游戏的实例,每个游戏的生命周期都包括初始化、开始游戏、游戏结束,但是每个游戏初始化、开始游戏、结束游戏的具体方式又不尽相同,图中Game是抽象父类,它实现了一个play的模版方法,分别调用初始化、开始游戏、结束游戏这三个抽象方法,Cricket、Football则是具体类,继承Game类并在子类中实现了这些抽象方法,并共用了不变的paly模版方法
- 代码地址:https://github.com/lanhei/DesignPattern/tree/master/src/com/lanhei/patterns/template
图-1