模板方法模式TemplateMethod
定义一个操作中算法(共有方法)的骨架,而将一些步骤延迟到子类中 ,模板方法发使得子类可以不改变一个算法的结构即可重新定义带算法的某些特定步骤。
模板方法模式通过把不变的行为搬移到超类,去除了子类中的重复代码。
把子类中重复出现的方法抽取出来,搬到超类中
AbstractClass定义了算法的骨架(可以有具体的实现,一般是抽象类),通过声明抽象方法限制子类以不同的方式来实现这些算法;
ConcreClass对算法的具体实现类
AbstractClass:一般为抽象类,
templateMethod就是一个算法骨架,无论子类如何重写Method1,Method2,执行templateMethod时都必须按照先1后2的顺序,限定了执行顺序
public abstract class AbstractClass {
public abstract void method1();
public abstract void method2();
public void templateMethod(){
method1();
method2();
}
}