Template Method Pattern属于行为模式。
GOF定义:定义一个操作中算法骨架,将一个些算法操作延迟到子类中去实现,模板方法使得子类能够改变算法结构或者重新定义算法实现。
角色分析:结构非常简单
AbstractClass(抽象类):
在抽象类中定义一系列的基本操作,者写基本操作可以具体的实现也可以是抽象的。
ConcreteClass(实现类):
用于实现或者覆盖父类的一系列基本操作。
扫描二维码关注公众号,回复:
558615 查看本文章
适用环境:
1、一次实现算法不变的部分,将可变的部分留给子类。
2、实现各个子类公共的部分,其他部分留给子类。
3、负责算法的分割,将算法固定不变的部分设计为模板,留给子类调用。
4、子类实现,父类调用(钩子)。
例:模板方法就是灵活使用继承的方式。
package template; /** *create by datao.wang 2014-2-8-上午10:44:32 *子类必须以线程启动 */ public abstract class Template { public abstract void action(); public void doAction(){ new Thread(new Runnable() { @Override public void run() { action();//调用子类的实现 } }).start(); } } package template; /** *create by datao.wang 2014-2-8-上午10:45:02 *子类现象父类的模板 */ public class SubTemplate extends Template { @Override public void action() { System.out.println(1+1); } }