核心要点

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

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

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

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

标准回答

一、核心判断

三大分类

二、创建型

关注「怎么创建对象」。单例保证全局唯一实例;工厂把创建逻辑集中、按需返回子类;建造者分步装配复杂对象。

三、结构型

关注「类/对象如何组合」。适配器转换不兼容接口;装饰器在不改原类下动态加功能;代理为对象提供访问控制或延迟加载。

四、行为型

关注「对象间如何协作」。策略封装可替换算法;观察者实现一对多事件通知(发布订阅);状态把状态相关行为分散到状态类。
作用
设计模式是被验证过的解决方案模板,能提升复用性、降低耦合、增强可读性。关键是先识别真实问题再选模式,而非先有模式再套场景。

常见误区

⚠️ 常见踩坑

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

追问

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

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

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

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

🔗 相似问题

同一考点的不同问法,换着练更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习