/**
* 模板方法模式。
* 模板方法模式在一个方法中定义算法的骨架,而将一些步骤延迟到子类中。
* 模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
* @author Bright Lee
*/
public class TemplateMethodPattern {
public static void main(String[] args) {
AbstractClass obj = new ConcreteClass();
obj.templateMethod();
}
}
abstract class AbstractClass {
/**
* 模板方法,定义了算法的骨架,其中的某些步骤可以由子类实现。
*/
public final void templateMethod() {
operation1();
operation2();
operation3();
}
/**
* 步骤1
*/
public void operation1() {
System.out.println("步骤1");
}
/**
* 步骤2
*/
public abstract void operation2();
/**
* 步骤3
*/
public abstract void operation3();
}
class ConcreteClass extends AbstractClass {
public void operation2() {
System.out.println("步骤2");
}
public void operation3() {
System.out.println("步骤3");
}
}
运行结果:
步骤1
步骤2
步骤3