模板方法模式:在一个方法中定义了一个算法的骨架,其中一些步骤延迟到子类中实现
public abstract class Template {
final void templateMethod(){
step1();
step2();
hook();
}
final void step1(){
//xxxx
}
void hook(){}
abstract void step2();
}
其中算法执行顺序是固定的,step1已经实现且不能更改,step2必须由子类自行实现。Hook由子类自行决定是否覆盖。模板方法模式在实现框架的应用中很常见。策略方法和模板方法都可以封装算法,策略方法用组合,模板方法用继承。工厂方法是模板方法的特殊版本。