模版方法
用于规定方法调用顺序,但自己不负责实现方法,适用于规定几乎永远不变的流程
· Java里抽象类就是这个作用,规定方法的调用顺序,具体实现由子类实现
abstract class Template {
abstract protected void doA();
abstract protected boolean needDoC();
abstract protected void doC();
public final void doing() {
doA();
//钩子,是否需要调用由子类自己实现
if (needDoC()) {
doC();
}
}
}
public class TemplateImpl extends Template {
@Override
protected void doA() {
System.out.println("A");
}
@Override
protected boolean needDoC() {
return true;
}
@Override
protected void doC() {
System.out.println("C");
}
public static void main(String[] args) {
new TemplateImpl().doing();
}
}