模板方法模式
//模板方法类 所有要使用模板的类的父类
public abstract class AbstractClass {
//模板方法
final void templateMethod(){
primitveOperation1();
primitveOperation2();
concreteOperation();
hook();
}
final void concreteOperation() {
//所有继承模板类的公有方法,子类不可以改变,但可以使用
}
void hook() {
//钩子方法,用来动态控制模板方法,可以根据实际情况决定要不要覆盖,默认是空的实现。
}
//封装有可能变化的方法,让子类去实现
abstract void primitveOperation1();
abstract void primitveOperation2();
}