定义
名称: template method 结构: 意图: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 适用性:
|
经典案例
1、著名的Framework方面的“好莱坞法则”(Don't call us, we'll call you )就是主要由Template Method支持的“反向控制”(Superclass调用Subclass的Method)产生的。
最佳实践
1、 应用程序框架使你可以从一个或者一系列类继承下来,进而创建一个新的应用程序,你可以重用既有类的大多数代码并且按照你自己的需要重载其中的某些方法,从而实现应用程序的定制。Template Method是应用程序框架的一个基本概念,它通常隐藏在(框架)背后,通过调用基类的一组方法(有些方法你可能已经重载过了)来驱动应用程序。
Template Method的一个重要特征是: 它是在基类里定义的,而且不能够被(派生类)更改。有时候它是私有方法(private method),但实际上它经常被声明为final。它通过调用其它的基类方法(重载过的)来工作,但它经常是作为初始化过程的一部分被调用的,这样就没必要让客户端程序员能够直接调用它了。
相关模式
1、
参考文章
1、与大虾对话: 领悟设计模式--Template Method / Visitor
http://jjhou.csdn.net/myan-design-patterns-big5.htm
2、 http://lcspace.nease.net/d-pattern/gof-tips2.xml