系列 - 设计模式
面向对象设计的思想源头与二十三种 GoF 模式的逐一拆解。
这个系列从「可维护性与可复用性」这个核心问题出发,先讲面向对象设计原则,再按创建型、行为型、结构型把 GoF 模式过一遍,最后收在依赖注入与控制反转——那两个今天已经渗透进几乎所有框架的「模式」。
每篇都按「问题场景 → 模式结构 → 代码实现」的顺序写,适合按顺序读一遍建立整体印象,也适合当模式速查手册。
| # | 篇目 | 这一篇讲什么 |
|---|---|---|
| 01 | 面向对象设计原则 | SOLID 等面向对象设计原则,以及它们要解决的可维护性与可复用性问题 |
| 02 | 设计模式之工厂模式 | 把对象的创建过程封装起来,客户端只依赖接口而不是具体类 |
| 03 | 设计模式之抽象工厂模式 | 产品等级结构,隔离产品族与产品类,解决工厂类职责过重 |
| 04 | 设计模式之建造者模式 | 把复杂对象的组装过程与客户端解耦,只暴露建造者接口 |
| 05 | 设计模式之模板方法模式 | 父类定义算法骨架,子类重写其中可变的那几个步骤 |
| 06 | 设计模式之原型模式 | 用原型实例指定要创建的对象种类,通过拷贝创建新对象 |
| 07 | 设计模式之中介者模式 | 用中介者封装对象间的网状多对多交互,转成星形结构 |
| 08 | 设计模式之命令模式 | 把请求封装成对象,发送方无需知道接收者是谁、操作是哪个 |
| 09 | 设计模式之责任链模式 | 把多个处理者串成一条链,请求沿链传递直到有人处理 |
| 10 | 设计模式之装饰模式 | 用组合替代继承,动态给对象叠加职责 |
| 11 | 设计模式之策略模式 | 把一族算法封装成可互换的策略类 |
| 12 | 设计模式之适配器模式 | 把已有类的接口转换成客户端期望的接口 |
| 13 | 设计模式之迭代器模式 | 把聚合对象的遍历职责独立出来,解耦存储与遍历 |
| 14 | 设计模式之备忘录模式 | 状态恢复机制,Undo 操作的经典实现 |
| 15 | 设计模式之组合模式 | 树形结构里容器与叶子的一致性处理 |
| 16 | 设计模式之观察者模式 | 建立对象间的一对多依赖,一个对象改变时自动通知其他对象 |
| 17 | 设计模式之门面模式 | 给复杂子系统提供一个统一入口,降低与客户端的耦合 |
| 18 | 设计模式之享元模式 | 区分内部状态与外部状态,高效共享大量细粒度对象 |
| 19 | 设计模式之桥梁模式 | 分离两个独立变化的维度,让它们各自独立扩展 |
| 20 | 设计模式之状态模式 | 把状态转换与各状态下的行为封装进状态类 |
| 21 | 设计模式之解释器模式 | 用面向对象结构定义一门简单语言的文法与解释 |
| 22 | 设计模式之代理模式 | 用代理对象控制对目标对象的访问 |
| 23 | 设计模式之单例模式 | 保证一个类只有一个实例,并提供全局访问点 |
| 24 | 设计模式之访问者模式 | 在不修改元素类的前提下,给不同类型的元素加新操作 |
| 25 | 设计模式之依赖注入 | 把依赖的创建与客户端自身行为分开,实现松耦合 |
| 26 | 设计模式之控制反转 | 把对象之间依赖关系的控制权交给第三方容器 |