1 建立抽象父类
public abstract class AbstractClass {
public abstract void primitiveOperation1();
public abstract void primitiveOperation2();
public void templateMethod() {
primitiveOperation1();
primitiveOperation2();
System.out.println("===");
}
}
2 建立两个实现子类
子类1:
public class ConcreteClassA extends AbstractClass {
@Override
public void primitiveOperation1() {
System.out.println("具体类A方法1实现");
}
@Override
public void primitiveOperation2() {
System.out.println("具体类A方法2实现");
}
}
子类2:
public class ConcreteClassB extends AbstractClass{
@Override
public void primitiveOperation1() {
System.out.println("具体类B方法1实现");
}
@Override
public void primitiveOperation2() {
System.out.println("具体类B方法2实现");
}
}
3 客户端调用
public class Client {
public static void main(String[] args) {
AbstractClass a;
a =new ConcreteClassA();
a.templateMethod();
a= new ConcreteClassB();
a.templateMethod();
}
}
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法结构即可重定义该算法的某些特定步骤