模版方法 Templatemethod

发布时间 2023-12-21 08:54:44作者: 梅丹隆

一、定义

  • 定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现
  • 模版方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤

二、适用场景

  • 一次性实现一个算法的不变部分,并将可变的行为留给子类来实现
  • 各子类中公共行为被提出来并集中到一个公共子类中,从而避免代码的重复
  • 适合提供钩子方法

三、优缺点

1、优点

  1. 提高复用性
  2. 提高扩展性
  3. 符合开闭原则 OpenClose

2、缺点

  1. 类数目增加
  2. 增加了系统实现的复杂度
  3. 继承关系自身缺点,如果父类增加了新的抽象方法,所有子类都要更改一遍

四、代码实现

https://github.com/Meidanlong/all-in-one/tree/master/design/src/main/java/com/mdl/design/pattern/behavioral/templatemethod

image.png