模板模式(Template Pattern)

一、概念

模板模式(Template Pattern)也叫模板方法模式,指在抽象类中将业务逻辑划分为多个方法,通过模板方法中调用这些方法后,组成完整的业务处理流程。子类只需重写相关方法实现,即可实现同一流程的不同处理方式

  • 核心思想:定义一个抽象模板类,提供子类实现。
  • 模式动机:许多业务有着相同的执行步骤,这些步骤中有许多是相同的代码实现,部分步骤是不同代码的实现。此时就可以在抽象类中定义所有的步骤,提供程序的方法主入口。由抽象类来实现通用的步骤方法,抽象类无法实现的具体步骤交给子类来实现

二、适用场景

  1. 有多个子类共有的方法,且逻辑相同
  2. 用于流程相同、相似的业务处理,可重写模板方法提供不同的处理方式

三、参与者

  • 抽象模板角色(Abstract Template):抽象模板类,定义了一个用于控制执行流程的具体模板方法、公共实现方法 以及 一些子类必须实现的抽象方法`。
  • 具体模板角色(Concrete Template):实现抽象模板类中的抽象方法,子类可以编写自己独有的实现逻辑,但是执行流程受抽象模板类控制。
  • Client 用户

四、代码例子

 做卷子时通常要经过以下几个步骤:

  1. 写名字和班级
  2. 答卷
  3. 交卷

不论是做语文卷还是英语卷都要经过这几步,但答卷时所完成的内容不同

  • 抽象模板角色(Abstract Template):ExamationPaper
  • 具体模板角色(Concrete Template):EnglishExamationPaper、ChineseExamationPaper

五、UML图

 

六、优缺点

(一)优点

  1. 封装不变部分,扩展可变部分,提高代码的复用性。
  2. 提取公共代码,便于维护。
  3. 行为由父类控制,子类实现。

(二)缺点

  1. 每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。
  2. 继承关系自身缺点,如果父类添加新的抽象方法,所有子类都要改一遍。
posted @ 2022-12-10 15:59  ImreW  阅读(41)  评论(0编辑  收藏  举报