设计模式之模板方法

2019-06-17  09:12:51

模板方法 (Template Method)

 

什么是模板方法:定义一个操作中算法的骨架(稳定),而将一些步骤的具体实现(变化)延迟到子类中。使子类可以不改变(复用)一个算法的结构(顶层逻辑),即可重定义该算法的某些特定步骤。

模板方法的组成:抽象父类:模板方法、基本方法(抽象、钩子、具体方法);  具体子类:实现父类中的抽象方法。

适用性:一个操作步骤中,既有稳定的部分,又有变化的部分。通过模板方法可以隔离变化。

public abstract class TemplateMethod{
  //模板方法
  public void templateMethod{
    method1(); //基本方法
    method2();
    method3();
  }
  //抽象方法,在子类中实现(变化)
  protected abstract void method1();

  //钩子方法,在子类中扩展
  protected abstract void method2(){}

  //具体方法,已经在抽象类中实现  (稳定)
  private final void method3(){
    ………… //具体实现
  }
}
/*使用模板方法*/
public class ConcreteTemplate extends TemplateMethod{
  //实现父类中的抽象方法
    @Override
    public void method1() {
        //业务相关的代码
    }
    @Override
    public void method2() {
        //业务相关的代码
    }
}

/*用例*/
public static void main(String[] args){
     //实例化子类
     TemplateMethod operation = new ConcreteTemplate();
     //调用模板方法
     operation.templateMethod();     
}        

 

posted @ 2019-06-17 09:37  由走啦啦啦  阅读(110)  评论(0编辑  收藏  举报