🐸 青蛙编程网

设计模式教程

设计模式是前人踩了几十年坑总结出的代码套路——遇到"对象该谁来创建""老接口对不上""一处改动牵全身"这类经典问题时,模式就是标准答案。本教程挑 Python 里最常用的 10 个模式,每个都配能直接跑的代码。

章节规划

章节 内容 核心知识点 状态
1. 设计模式是什么 模式地图与分类 GoF 23 种、创建/结构/行为三大类、Python 的"半隐形"模式 ✅ 已上线
2. 创建型模式:单例与工厂 对象怎么生、生几个 模块级单例、__new__、工厂函数 ✅ 已上线
3. 创建型模式:建造者与原型 复杂对象逐步组装与克隆 链式调用 build()、copy.deepcopy ✅ 已上线
4. 结构型模式:适配器与外观 让不对接的代码对接 包装旧接口、简化子系统入口 ✅ 已上线
5. 结构型模式:装饰器与代理 不改原类加功能 叠加职责的包装链、缓存/控制访问的代理 ✅ 已上线
6. 行为型模式:策略与观察者 对象之间怎么协作 函数即策略、发布-订阅 ✅ 已上线
7. 综合练习:可插拔的通知中心 一个小项目串起四个模式 工厂 + 策略 + 观察者 + 单例 ✅ 已上线

适合谁看

  • 学完 Python 面向对象,想写出更好维护的代码
  • 读框架源码时满眼都是 Factory、Proxy、Adapter,想知道这些词什么意思
  • 准备面试——设计模式是高频考点

10 个模式一句话地图

模式 一句话 分类
单例 全局只有一个实例 创建型
工厂 把"造哪个对象"交给工厂函数 创建型
建造者 链式调用一步步组装复杂对象 创建型
原型 从模板克隆再改差异 创建型
适配器 把旧接口包成新接口 结构型
外观 复杂子系统包一个简单入口 结构型
装饰器 层层包装,动态叠加职责 结构型
代理 在访问对象前后加控制 结构型
策略 算法可替换,函数即策略 行为型
观察者 一处变化,多方收到通知 行为型

记忆口诀

创建管出生(单例/工厂/建造者/原型),结构管组装(适配器/外观/装饰器/代理),行为管协作(策略/观察者)。

动手建议

  1. 每章代码先原样跑一遍,再合上教程自己写一遍——模式是"手感",不是"知识点"
  2. 学完一个模式,回头看看自己项目里哪段代码能重构
  3. 学完第 7 章的综合练习后,试着给通知中心再加一个"钉钉渠道",检验是不是真的"可插拔"

前置:Python 面向对象 🐸