设计模式入门
不是为了背 23 个模式的名字,而是为了在遇到设计问题时有现成的解决方案可以参考。
为什么要学设计模式
- 沟通:说"用策略模式"比描述一段代码结构高效得多
- 经验复用:前人踩过的坑和总结的方案,直接拿来用
- 代码质量:问题与模式适配时,用成熟结构管理变化;简单问题引入模式反而增加维护成本
学习动机与模式本质,见为什么需要设计模式。
从问题出发
下表是候选方案入口,不是确定选型结论。是否引入某个模式,还要看变化来源、依赖关系和对象生命周期。
txt
代码难以扩展 → 开闭原则 → 策略模式 / 装饰器
创建时需要选择具体类型 → 工厂模式
复杂对象分步构建 → 建造者
对象间通信混乱 → 观察者 / 中介者
需要共享实例 → 单例(先明确唯一性作用域)
接口不兼容 → 适配器
需要增强功能 → 装饰器 / 代理模式清单与意图,见设计模式速查表。
学习顺序建议
- 先理解 SOLID 原则(设计的底层逻辑)
- 优先学习 5 个常用模式:策略、工厂、单例、观察者、代理
- 按需学习其他模式(遇到问题再查)
- 在实际项目中识别模式的应用,落到现有代码见重构到设计模式
反模式提醒
- 不要为了用模式而用模式
- 简单代码不需要模式
- 过度设计比没有设计更糟糕
反模式清单与识别方法,见反模式。