模板方法模式
- 描述
- 基本定义
- 使用
描述
当一系列业务的基本流程是相同的,对于不同的业务可以在各自子类实现
所谓模板方法指的就是父类中固定的那部分代码
其实这里的思想和前面设计原则中开闭原则的描述是一致的,父类中的模板代码就是稳定的部分,而由具体子类实现的部分就是不稳定的部分。
基本定义
- 父类模板方法
public abstract class AbstractBiz {public final void tempMethod() {this.step1();this.step2();if (this.needStep3()) {this.step3();}}private void step1() {System.out.println("step1...");}private void step3() {System.out.println("step3...");}protected abstract boolean needStep3();protected abstract void step2();
}
- 具体子类
public class Biz1 extends AbstractBiz{@Overrideprotected boolean needStep3() {return false;}@Overrideprotected void step2() {System.out.println("Biz1 step2....");}
}public class Biz2 extends AbstractBiz{@Overrideprotected boolean needStep3() {return true;}@Overrideprotected void step2() {System.out.println("Biz1 step2....");}
}
使用
public class Sample {public static void main(String[] args) {AbstractBiz biz1 = new Biz1();biz1.tempMethod();AbstractBiz biz2 = new Biz2();biz2.tempMethod();}
}