定义
在模板模式(
Template Pattern
)中,一个抽象类
公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类
中定义的方式进行。这种类型的设计模式属于行为型模式。
简单来说: 在一个 abstract
类中,定义好要执行的方法,同时定义好方法的执行顺序,然后在子类中,去具体实现方法,最后调用封装了执行顺序的方法。
结构:
abstract
类,其中封装了执行顺序的方法,以及每一步要执行的抽象方法;子类
,实现了各种方法,最后调用父类中 执行顺序 的方法。
为了解决什么问题?
主要是固定流程的抽象,也可以理解成将一件事,按照固定步骤执行,如:
- 泡茶,泡咖啡的过程:1. 先烧开水,2. 方咖啡或者茶,3. 加开水,4. 加入小料;
- 从 git 克隆代码的过程:1. 找到仓库地址,2. 本地开打终端,3. 执行 git clone xxx, 4. npm init
- 请假申请:1. 提交请假申请,2. 等待审批,3.休假,4.销假。
从上面示例可以看出,模板方法模式
就是对同一种类型的事务,总结出他们共同的执行步骤