1. 定义
定义一个操作的算法骨架,而将一些步骤延迟到子类中。Template Method 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤
2. 案例
AbstractClass:定义抽象方法
abstract class AbstractClass {abstract protected void templateMethod();public void operation() {//前序操作步骤...System.out.println("pre ...");System.out.println("step1...");System.out.println("step2...");//执行模板方法(子类中实现具体代码)templateMethod();//其他操作步骤//....}}
SubClass:继承重写抽象方法
class SubClass extends AbstractClass {@Overrideprotected void templateMethod() {System.out.println("SubClass executed...");}}
使用:执行operation方法就可以执行父类定义的代码逻辑和子类自己实现代码逻辑
public static void main(String[] args) {AbstractClass subClass = new SubClass();subClass.operation();}
