》》》前情回顾:设计原则及模式分类
类别:组件协作(晚绑定) 场景:整体结构稳定,但是子步骤有很多改变 模式定义: * 定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中。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();
}
}