【设计模式】Java 设计模式之模板方法模式(Template Method)
// 抽象类,定义了一个模板方法templateMethod
abstract class AbstractClass {
// 常规方法,实现具体的算法步骤
public void doSomething() {
// 通常实现具体的步骤
System.out.println("执行第一步骤");
// 调用抽象方法,留给子类实现
doAnything();
// 通常实现具体的步骤
System.out.println("执行第三步骤");
}
// 抽象方法,留给子类实现
protected abstract void doAnything();
// 模板方法,定义了算法的骨架
public void templateMethod() {
// 调用已实现的方法
doSomething();
}
}
// 实现了抽象类的具体类
class ConcreteClass extends AbstractClass {
// 实现抽象方法
@Override
protected void doAnything() {
System.out.println("执行第二步骤");
}
}
// 使用
public class TemplateMethodPattern {
public static void main(String[] args) {
AbstractClass c = new ConcreteClass();
c.templateMethod(); // 调用模板方法
}
}
这个代码示例展示了如何在Java中使用模板方法模式。AbstractClass
定义了一个模板方法templateMethod
,它调用了一个具体的方法doSomething
和一个抽象方法doAnything
。ConcreteClass
继承自AbstractClass
并实现了doAnything
方法。在main
方法中,我们创建了ConcreteClass
的实例并调用了模板方法templateMethod
,它按照预定的顺序执行了三个步骤。
评论已关闭