定义:在抽象父类中定义一个操作中的逻辑骨架,将一些变化的步骤下沉到子类。
模板方法可以实现在不改变算法结构的前提下,通过重新定义特定步骤来改变该算法的特定步骤逻辑。
UML
抽象父类
abstract class AbstractClass{
public abstract void PrimitiveOperation1();
public abstract void PrimitiveOperation2();
public void TemplateMethod(){
System.out.println("主干骨架操作");
PrimitiveOperation1();
PrimitiveOperation2();
}
}
定制实现子类
class ConcreteClassA extends AbstractClass{
@Override
public void PrimitiveOperation1() {
System.out.println("A定制步骤实现1");
}
@Override
public void PrimitiveOperation2() {
System.out.println("A定制步骤实现2");
}
}
class ConcreteClassB extends AbstractClass{
@Override
public void PrimitiveOperation1() {
System.out.println("B定制步骤实现1");
}
@Override
public void PrimitiveOperation2() {
System.out.println("B定制步骤实现2");
}
}
客户端
public class TestMain {
public static void main(String[] args) {
AbstractClass c;
c = new ConcreteClassA();
c.TemplateMethod();
c = new ConcreteClassB();
c.TemplateMethod();
}
}