目录
[显示]

1.摘要

Template Method是一种代码复用的基本技术,它定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

2. 针对问题

当一个算法的大部分实现是不变的,只有一部分可变时,我们可以将算法的不变部分提取到基类中,可变部分留给派生类完成,这便是Template Method模式。

3. 介绍

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

4. 实现

Template Method的静态图如下:

AbstractClass中的TemplateMethod实现了算法中不变的逻辑,将可变逻辑PrimitlveOperation交给子类实现。

另一种Template Method的主要用途为hook操作:基类中提供一个默认空操作,派生类可以修改这个操作的实现,相当于在Template Method算法中“插入”了派生类的逻辑。在实现这样的hook时,基类设计者必须指明哪些是hook操作。

5. 特点

1、Template Method模式是代码复用的一种基本技术,它提供了一种反向控制的结构:由父类调用子类的操作。
2、Template Method模式可以提供hook操作,子类可以在必要的时候向某个算法中插入自己的逻辑。

6. 相关文章

1、设计模式总结

7. 参考文章

  1. 《设计模式_可复用面向对象软件的基础》,