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