设计模式 - 模板方法模式
定义
Define the skeleton of an algorithm in an operation, deferring some steps to subclasses.
Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.
UML
实例
算法实现,自定义类库,一张数据表生成不同的统计报表,
- 客户端扩展某个特定算法步骤,而不是整个算法或结构。
- 多个类的算法除了一些细微不同之外几乎完全一样。
比较
比较 | 模板方法模式 | 备注 |
---|---|---|
工厂方法模式 | 定义操作的骨架 | 工厂方法是模板方法的一种特殊形式,可以作为一个大型模板方法中的一个步骤 |
策略模式 | 模板方法基于继承,通过扩展子类中的部分内容来改变部分算法。针对类,是静态的 | 策略基于组合机制,通过对相应行为提供不同的策略来改变对象的部分行为。针对对象,允许在运行时切换行为 |