一、UML类图

二、代码示例
public class Client {
public static void main(String[] args) {
AbstractClass abstractClass = new ConcreteClass();
abstractClass.templateMethod();
}
}
public abstract class AbstractClass {
protected abstract void method1();
protected abstract void method2();
protected abstract void method3();
public void templateMethod() {
method1();
method2();
method3();
}
}
public class ConcreteClass extends AbstractClass{
@Override
protected void method1() { }
@Override
protected void method2() { }
@Override
protected void method3() { }
}
三、角色介绍
- Client(客户端):
客户端角色,程序的调用者。 - AbstractClass(抽象类):
负责实现模板方法,同时负责声明在模板方法中所使用到的抽象方法。 - ConcreteClass(具体类):
负责具体实现AbstractClass角色中定义的抽象方法。