设计模式之模板方法模式
作者:cndz
围观群众:661
更新于
标签:设计模式模板方法模式模板方法模式简介
简介
模板方法模式是一种行为型设计模式。它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变算法结构的情况下,重新定义算法中的某些步骤。
在模板方法模式中,抽象类负责定义算法骨架,而具体实现则由子类来完成。子类可以通过继承抽象类并覆盖其中的方法来改变算法流程。
优缺点
优点:
- 实现了代码重用,避免了重复代码;
- 提高了代码的灵活性,使得子类可以根据需求来实现一些步骤;
- 提高了代码的可扩展性,可以方便地增加或修改算法的步骤。
缺点:
- 如果算法骨架需要修改,可能需要修改所有的子类;
- 如果算法骨架比较复杂,可能会导致代码难以理解。
Java实例
以下是一个简单的Java实例,演示了模板方法模式的应用:
abstract class AbstractClass {
public void templateMethod() {
primitiveOperation1();
primitiveOperation2();
}
abstract void primitiveOperation1();
abstract void primitiveOperation2();
}
class ConcreteClass extends AbstractClass {
void primitiveOperation1() {
System.out.println("ConcreteClass.primitiveOperation1() called.");
}
void primitiveOperation2() {
System.out.println("ConcreteClass.primitiveOperation2() called.");
}
}
public class Main {
public static void main(String[] args) {
AbstractClass obj = new ConcreteClass();
obj.templateMethod();
}
}
运行结果:
ConcreteClass.primitiveOperation1() called.
ConcreteClass.primitiveOperation2() called.
应用场景
模板方法模式适用于以下场景:
- 多个子类有相同的算法骨架,但某些步骤的实现不同;
- 重构时,将相同的代码抽象到父类中,而将不同的代码留给子类实现。
总结
模板方法模式是一种常见的设计模式,它的优点在于可以提高代码的重用性、灵活性和可扩展性。但是,如果算法骨架需要修改,可能需要修改所有的子类,这就是其缺点之一。在实际应用中,可以根据具体的需求来选择是否使用模板方法模式。