在Java中,模板方法模式是一种行为设计模式,它定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现。以下是一个简单的示例:
// 抽象类定义了模板方法和一些基本的方法,子类可以根据需要实现这些方法
abstract class AbstractClass {// 模板方法定义了算法的骨架public final void templateMethod() {operation1(); // 调用基本方法1operation2(); // 调用基本方法2operation3(); // 调用基本方法3}// 基本方法1,由子类实现abstract void operation1();// 基本方法2,由子类实现abstract void operation2();// 基本方法3,子类可以选择性地覆盖void operation3() {System.out.println("Default implementation of operation3");}
}// 具体子类实现基本方法
class ConcreteClass extends AbstractClass {// 实现基本方法1void operation1() {System.out.println("ConcreteClass: Performing operation1");}// 实现基本方法2void operation2() {System.out.println("ConcreteClass: Performing operation2");}// 子类可以选择性地覆盖基本方法3void operation3() {System.out.println("ConcreteClass: Performing custom operation3");}
}public class Main {public static void main(String[] args) {AbstractClass abstractClass = new ConcreteClass();abstractClass.templateMethod(); // 调用模板方法}
}
在这个例子中,AbstractClass 是抽象类,定义了模板方法 templateMethod() 和一些基本方法,其中 operation1() 和 operation2() 是抽象方法,需要由具体的子类实现。ConcreteClass 是具体子类,实现了 AbstractClass 中的抽象方法,并可以选择性地覆盖 operation3() 方法。在 Main 类中,我们创建了 ConcreteClass 的实例并调用了模板方法 templateMethod(),它会按照定义的算法骨架执行各个基本方法。