1.定义
定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
2.UML
3.代码
public abstract class AbstractTemplate {
abstract void doSomething();
abstract void doAnything();
void templateMethod() {
doSomething();
doAnything();
}
}
public class ConcreteTemplate1 extends AbstractTemplate {
@Override
void doSomething() {
}
@Override
void doAnything() {
}
}
public class ConcreteTemplate2 extends AbstractTemplate {
@Override
void doSomething() {
}
@Override
void doAnything() {
}
}
public class Client {
public static void main(String[] args) {
AbstractTemplate template1 = new ConcreteTemplate1();
template1.templateMethod();
AbstractTemplate template2 = new ConcreteTemplate2();
template2.templateMethod();
}
}