设计模式之模板方法模式(Template Method模式)

一、UML类图

设计模式之模板方法模式(Template Method模式)_第1张图片

二、代码示例

  • Client:
public class Client {
    public static void main(String[] args) {
        AbstractClass abstractClass = new ConcreteClass();
        abstractClass.templateMethod();
    }
}
  • AbstractClass:
public abstract class AbstractClass {
    protected abstract void method1();

    protected abstract void method2();

    protected abstract void method3();

    public void templateMethod() {
        method1();
        method2();
        method3();
    }
}
  • ConcreteClass:
public class ConcreteClass extends AbstractClass{
    @Override
    protected void method1() { }

    @Override
    protected void method2() { }

    @Override
    protected void method3() { }
}

三、角色介绍

  • Client(客户端):
    客户端角色,程序的调用者。
  • AbstractClass(抽象类):
    负责实现模板方法,同时负责声明在模板方法中所使用到的抽象方法。
  • ConcreteClass(具体类):
    负责具体实现AbstractClass角色中定义的抽象方法。

你可能感兴趣的:(设计模式,模板方法模式,uml,java)