》》》前情回顾:设计原则及模式分类
类别:组件协作(晚绑定)
场景:整体结构稳定,但是子步骤有很多改变
模式定义:
* 定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override重写)该算法的某些特定步骤。
public abstract class AbsClass{
//基本方法
protected abstract void doSomething();
protected abstract void doAnything();
//模板方法
public void templateMethod() {
//调用基本方法,完成相关逻辑
this.doAnything();
this.doSomething();
}
}
------
public class ImplAbs222 extends AbsClass {
protected ImplAbs222(String num) {
super(num);
}
@Override
protected void doSomething() {
System.out.println("-----something"+num+"-----");
}
@Override
protected void doAnything() {
System.out.println("-------anything"+num+"---------");
}
}
------
public class ImplAbsClass extends AbsClass{
protected ImplAbsClass(String num) {
super(num);
}
@Override
protected void doSomething() {
System.out.println("----doSomething"+num+"-----");
}
@Override
protected void doAnything() {
System.out.println("-------doAnything"+num+"------");
}
}
------
public class AbsTest {
public static void main(String[] args) {
ImplAbsClass implAbsClass = new ImplAbsClass("111");
ImplAbs222 implAbs222 = new ImplAbs222("222");
implAbs222.templateMethod();
implAbsClass.templateMethod();
}
}