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(); }