模板方法模式
定义:
定义一个操作中的算法骨架,而将一些步骤延伸到子类中去,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。这里需要复用的是算法的结构,也就是步骤,而步骤的实现可以在子类中完成;
构成:
父类角色:提供模板;
子类角色:为模板提供实现;
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(); } } |