设计模式-模板方法模式

定义:在抽象父类中定义一个操作中的逻辑骨架,将一些变化的步骤下沉到子类。

模板方法可以实现在不改变算法结构的前提下,通过重新定义特定步骤来改变该算法的特定步骤逻辑。

UML

spoon

抽象父类

    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();
        }
    }