模板方法模式

父类的模板

public abstract class AbstractClass {
    /** * 一些抽象的方法 放到子类去实现 */
    public abstract void PrimitiveOperation_1();

    public abstract void PrimitiveOperation_2();

    /** * 模板方法 * 给出了逻辑的框架,逻辑的组成是一些抽象的操作 * 都推迟到子类中去实现 */
    public void templateMethod() {
        System.out.println("父类的模板方法");
        PrimitiveOperation_1();
        PrimitiveOperation_2();
    }
}

具体的子类去实现父类抽象的方法

public class ConcreteClassA extends AbstractClass {
    @Override
    public void PrimitiveOperation_1() {
        System.out.println("具体类A: 方法 1 的实现");
    }

    @Override
    public void PrimitiveOperation_2() {
        System.out.println("具体类A: 方法 2 的实现");
    }
}
public class ConcreteClassB extends AbstractClass {
    @Override
    public void PrimitiveOperation_1() {
        System.out.println("具体类B: 方法 1 的实现");
    }

    @Override
    public void PrimitiveOperation_2() {
        System.out.println("具体类B: 方法 2 的实现");
    }
}

测试类

public class Main {
    public static void main(String[] args) {
        AbstractClass abstractClass;

        abstractClass = new ConcreteClassA();
        abstractClass.templateMethod();

        abstractClass = new ConcreteClassB();
        abstractClass.templateMethod();

    }
}