设计模式教程
设计模式是前人踩了几十年坑总结出的代码套路——遇到"对象该谁来创建""老接口对不上""一处改动牵全身"这类经典问题时,模式就是标准答案。本教程挑 Python 里最常用的 10 个模式,每个都配能直接跑的代码。
章节规划
| 章节 | 内容 | 核心知识点 | 状态 |
|---|---|---|---|
| 1. 设计模式是什么 | 模式地图与分类 | GoF 23 种、创建/结构/行为三大类、Python 的"半隐形"模式 | ✅ 已上线 |
| 2. 创建型模式:单例与工厂 | 对象怎么生、生几个 | 模块级单例、__new__、工厂函数 |
✅ 已上线 |
| 3. 创建型模式:建造者与原型 | 复杂对象逐步组装与克隆 | 链式调用 build()、copy.deepcopy |
✅ 已上线 |
| 4. 结构型模式:适配器与外观 | 让不对接的代码对接 | 包装旧接口、简化子系统入口 | ✅ 已上线 |
| 5. 结构型模式:装饰器与代理 | 不改原类加功能 | 叠加职责的包装链、缓存/控制访问的代理 | ✅ 已上线 |
| 6. 行为型模式:策略与观察者 | 对象之间怎么协作 | 函数即策略、发布-订阅 | ✅ 已上线 |
| 7. 综合练习:可插拔的通知中心 | 一个小项目串起四个模式 | 工厂 + 策略 + 观察者 + 单例 | ✅ 已上线 |
适合谁看
- 学完 Python 面向对象,想写出更好维护的代码
- 读框架源码时满眼都是
Factory、Proxy、Adapter,想知道这些词什么意思 - 准备面试——设计模式是高频考点
10 个模式一句话地图
| 模式 | 一句话 | 分类 |
|---|---|---|
| 单例 | 全局只有一个实例 | 创建型 |
| 工厂 | 把"造哪个对象"交给工厂函数 | 创建型 |
| 建造者 | 链式调用一步步组装复杂对象 | 创建型 |
| 原型 | 从模板克隆再改差异 | 创建型 |
| 适配器 | 把旧接口包成新接口 | 结构型 |
| 外观 | 复杂子系统包一个简单入口 | 结构型 |
| 装饰器 | 层层包装,动态叠加职责 | 结构型 |
| 代理 | 在访问对象前后加控制 | 结构型 |
| 策略 | 算法可替换,函数即策略 | 行为型 |
| 观察者 | 一处变化,多方收到通知 | 行为型 |
记忆口诀
创建管出生(单例/工厂/建造者/原型),结构管组装(适配器/外观/装饰器/代理),行为管协作(策略/观察者)。
动手建议
- 每章代码先原样跑一遍,再合上教程自己写一遍——模式是"手感",不是"知识点"
- 学完一个模式,回头看看自己项目里哪段代码能重构
- 学完第 7 章的综合练习后,试着给通知中心再加一个"钉钉渠道",检验是不是真的"可插拔"
前置:Python 面向对象 🐸