概述
模版方法模式(Template Method Pattern)定义一个操作中算法的骨架,将算法中某些步骤延迟到子类中实现,这样不会改变算法的结构,可以改变某个步骤的行为。
优点:符合“开闭原则”、“单一职责原则”。
缺点:复杂度增加。
abstract class Super {
public void op1() {
// body
}
public void op3() {
// body
}
abstract void op2();
public void templateMethod() {
this.op1();
this.op2();
this.op3();
}
}
public class Sub1 extends Super {
public void op2() {
// body
}
}
public class Sub2 extends Super {
public void op2() {
// body
}
}
图示:
参考
[1] 刘伟, 设计模式,2011.