模板方法模式

模板方法模式定义

模板方法定义一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类在不改变算法架构的情况下,重新定义算法中的某些步骤。

模板方法模式详解

使用场景

一个算法中有可变部分和不可变部分,可以将可变部分放在父类中,让子类来具体实现。

图解

01 模板方法流程图.png

模板方法模式优缺点

优点

  1. 封装了不变的部分,扩展可变部分。
  2. 在父类中封装了公共部分的代码,提高了代码的复用性。

缺点

  1. 对每个不同的实现都需要定义一个子类,导致类的数量增加。
  2. 父类抽象方法由子类实现,子类的结果会影响父类的结果,提高了代码阅读的难度。

模板方法模式总结

在一定程度上,设计模式中的模板方法可以规范项目中的代码编写规范。一些流程中定义子类 “继承” 父类,按照父类中定义的框架来实现具体变化逻辑,不仅共用了一些代码也将该操作与原先的子类隔离开而且不会影响以前逻辑。