<读书笔记>设计模式综合(1):引子--模板方法

首先引入痛点: 重复代码, 包括字面上的重复, 或者是逻辑层面上的重复(比如功能).

故需要时刻记住: DRY. Don't Repeat Yourself.

模板方法, 就是为了解决重复代码问题而出现的.

1 简介

在 OOP 中, 重用代码的一个基本手段就是继承, 以及组合.

利用继承的方式, 可以把相同的逻辑放到父类中, 子类实现自己特定的功能即可.

而在某些情况下, 父类往往对外提供接口, 隐藏子类细节. 而接口的实现就可以针对不同的子类有不同的实现.

若在父类中定义了一个方法, 这个方法来决定算法的执行结构, 而具体的算法实现根据不同的子类有所不同, 这样的方法就是模板方法.

也即: 动作执行流程不变, 但流程中的组成细节是根据不同的子类有所不同.

利用模板方法的时候, 过渡地添加子类会造成子类泛滥问题. 故有时可以利用回调来替换掉子类实现. 比如执行流程中的某个子动作是根据不同子类有所不同, 则可以把这个动作利用回调暴露给外界去处理.

2 意图

实际介绍上面的内容, 仅为引出一个道理: 人总是需要站在一个更高的角度来看问题, 才能不断提高, 否则一个人琢磨再多, 可能也只是前人解决过的无数问题中的一个.

故学习设计模式之前, 先来完整了解一下所谓的 "6 大设计原则", 设计模式就是依据这些总体原则构造出来的:

  1. 单一职责原则 (SRP)
  2. 里式替换原则 ()
  3. 依赖倒置原则 (IOC)
  4. 接口隔离原则 ()
  5. 迪米特法则 ()
  6. 开放封闭原则 (OCP)

你可能感兴趣的:(<读书笔记>设计模式综合(1):引子--模板方法)