1.意图
定义一个操作中的算法骨架,而将一些步骤延迟到子类。TemplateMethod使得子类
可以不改变算法的结构重新定义算法的某些特定的。
2.参与者
AbstractClass -抽象类定义抽象的原语操作,具体子类将重定义它们实现一个算法的各个步骤
-实现一个算法定义一个骨架。该算法骨架不仅调用原语操作,也调用定义在抽象
类或者其它对象中的操作。
ConcreteClass -实现原语操作以实现算法中与特定子类相关的步骤。
3.结构

4.代码
public class AbstractClass {
public void Method(){
A();
B();
C();
D();
}
public void A(){
System.out.println("拿杯子");
}
public void B(){
System.out.println("倒入开水");
}
public void C(){
}
public void D(){
System.out.println("搅拌");
}
}
public class ConcreteClass extends AbstractClass {
public void C(){
System.out.println("加咖啡");
}
}
public class ConcreteClass2 extends AbstractClass {
public void C(){
System.out.println("加奶粉");
}
}
public static void main(String[] args) {
AbstractClass a = new ConcreteClass();
a.Method();
System.out.println("*********************");
AbstractClass b = new ConcreteClass2();
b.Method();
}
}
860

被折叠的 条评论
为什么被折叠?



