核心要点

  • 创建型:单例、工厂、建造者——解耦对象的创建过程。

  • 结构型:适配器、装饰器、代理——组合类与对象、扩展功能。

  • 行为型:策略观察者、状态——封装算法与对象间协作。

  • 价值:复用成熟经验、降低耦合;按问题选用,勿生搬硬套。

标准回答

三大分类

  • 创建型:关注「怎么创建对象」。单例保证全局唯一实例;工厂把创建逻辑集中、按需返回子类;建造者分步装配复杂对象。
  • 结构型:关注「类/对象如何组合」。适配器转换不兼容接口;装饰器在不改原类下动态加功能;代理为对象提供访问控制或延迟加载。
  • 行为型:关注「对象间如何协作」。策略封装可替换算法;观察者实现一对多事件通知(发布订阅);状态把状态相关行为分散到状态类。

作用

设计模式是被验证过的解决方案模板,能提升复用性、降低耦合、增强可读性。关键是先识别真实问题再选模式,而非先有模式再套场景。

常见误区

⚠️ 常见踩坑

过度设计:简单问题硬套复杂模式,反而增加理解成本;以及把模式当目标而非解决耦合/复用问题的手段。

追问

追问 1策略模式和状态模式有什么区别?

结构相似但意图不同。策略让调用方主动选择互不感知的算法;状态则随对象内部状态自动切换行为,状态之间常彼此知晓并触发转移。

追问 2单例模式有哪些缺点?

引入全局状态、隐藏依赖、不利于单元测试(难替换 mock),多线程下需注意并发初始化。很多场景可用依赖注入提供单一实例替代。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。