模板方法和策略模式一样,用来降低代码耦合度(将代码变化的部分放到方法中)。
模板方法的定义为:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
abstract class ApplicationFramework {
public ApplicationFramework() {
templateMethod();
}
abstract void customize1();
abstract void customize2();
final void templateMethod() {
for(int i = 0; i < 5; i++) {
customize1();
customize2();
}
}
}
使用模板类创建的新类:
class MyApp extends ApplicationFramework {
void customize1() {
System.out.print("Hello ");
}
void customize2() {
System.out.println("World!");
}
}
调用则和正常实例化一样:
MyApp app = new MyApp();