11.5
模板方法模式
模板方法模式是一种行为设计模式,它定义了一个算法的骨架,在抽象类中封装了算法的结构,具体的步骤由子类去实现,以达到在不改变算法结构的情况下,允许子类重定义算法中的某些步骤。
下面是一个简单的Java代码示例,演示了模板方法模式的实现:
abstract class AbstractClass {
public void templateMethod() {
step1();
step2();
step3();
}
public abstract void step1();
public abstract void step2();
public abstract void step3();
}
class ConcreteClass extends AbstractClass {
@Override
public void step1() {
System.out.println("Step 1");
}
@Override
public void step2() {
System.out.println("Step 2");
}
@Override
public void step3() {
System.out.println("Step 3");
}
}
public class Main {
public static void main(String[] args) {
AbstractClass abstractClass = new ConcreteClass();
abstractClass.templateMethod();
}
}
在上面的示例中,AbstractClass
是抽象类,定义了模板方法templateMethod()
和三个抽象步骤step1()
、step2()
、step3()
。ConcreteClass
是具体子类,继承抽象类并实现了具体的步骤。
在Main
类中,创建了一个具体子类的实例,并调用了模板方法templateMethod()
。执行模板方法时,具体步骤会按照定义的顺序依次被调用。
输出结果将是:
Step 1
Step 2
Step 3
这个示例展示了模板方法模式的基本结构,其中抽象类定义了算法的骨架,具体子类根据需要重写其中的步骤,实现了算法的具体细节。