模板方法模式
定义:
定义一个操作中的算法骨架,而将一些步骤延伸到子类中去,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。这里需要复用的是算法的结构,也是步骤,而步骤的实现可以在子类中完成;
构成:
父类角色:提供模板;
子类角色:为模板提供实现;
java代码实现:
public abstract class Template {
//定义执行步骤,每个步骤的具体实现由子类完成
public void method() {
this.step1();
this.step2();
this.step3();
}
protected abstract void step1();
protected abstract void step2();
protected abstract void step3();
}
public class ConcreteTemplate extends Template {
@Override
protected void step1() {
System.out.println("ConcreteTemplate.step1()");
}
@Override
protected void step2() {
System.out.println("ConcreteTemplate.step2()");
}
@Override
protected void step3() {
System.out.println("ConcreteTemplate.step3()");
}
}
public class Client {
public static void main(String[] args) {
Template template = new ConcreteTemplate();
template.method();
}
}