用java写一个模板方法模式
时间: 2024-05-12 14:21:03 浏览: 74
模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现。以下是一个使用Java编写的模板方法模式的示例:
```
public abstract class AbstractClass {
// 模板方法,定义了算法的骨架
public final void templateMethod() {
// 步骤1:执行操作A
operationA();
// 步骤2:执行操作B
operationB();
// 步骤3:执行操作C
operationC();
}
// 抽象方法,由子类实现
protected abstract void operationA();
// 抽象方法,由子类实现
protected abstract void operationB();
// 具体方法,提供默认实现
protected void operationC() {
System.out.println("AbstractClass.operationC() called");
}
}
public class ConcreteClass extends AbstractClass {
// 实现操作A
protected void operationA() {
System.out.println("ConcreteClass.operationA() called");
}
// 实现操作B
protected void operationB() {
System.out.println("ConcreteClass.operationB() called");
}
// 重写操作C
protected void operationC() {
System.out.println("ConcreteClass.operationC() called");
}
}
public class Main {
public static void main(String[] args) {
AbstractClass abstractClass = new ConcreteClass();
abstractClass.templateMethod();
}
}
```
在上面的示例中,AbstractClass是抽象类,定义了模板方法templateMethod(),该方法定义了算法的骨架,并在其中调用了抽象方法operationA()和operationB(),以及具体方法operationC()(提供默认实现)。ConcreteClass是AbstractClass的实现类,实现了抽象方法operationA()和operationB(),并重写了具体方法operationC()。在Main类中,创建了ConcreteClass的实例,并调用了它的templateMethod()方法,这将按照算法的骨架执行操作A、B和C。
阅读全文