← 每日面试题 学习看板

什么是设计模式?有什么好处?

面试题/02架构设计题/09设计模式/什么是设计模式?有什么好处?.md

面试记录 2026-10-08

题目:什么是设计模式?有什么好处?

难度:low

标签:arch/design-pattern, architecture/design, difficulty/low

评分:⭐⭐⭐☆☆(3/5)

我的回答

所谓设计模式,设计模式就是把一些经常使用的经常使用的逻辑整合成一种模式,然后重复的使用,方便传递,方便重复使用。它其实是一套思维逻辑,并不仅仅是一个工具,它们传递的是一种种思想。常见的设计模式主要分几类,创建型的、逻辑型的、管理对象型的。比如创建型的有创建建造者、工厂、模板方法、工厂方法等。逻辑型的像责任链、策略、代理,这都是相当于行为或者逻辑型的。好像单例就是创建对象型的。

点评

优点:抓住了设计模式的本质——"思维逻辑"、"传递思想",这个洞察到位;列举的具体模式大多正确。

不足:分类体系错位(GoF 三大类是创建型/结构型/行为型,不是"逻辑型/管理对象型");模板方法归错类(应为行为型);代理归错类(应为结构型);遗漏原型、抽象工厂、适配器、装饰器等常见模式。

补充:完整分类——创建型 5(单例/工厂方法/抽象工厂/建造者/原型)、结构型 7(适配器/桥接/组合/装饰器/外观/享元/代理)、行为型 11(责任链/命令/迭代器/中介者/备忘录/观察者/状态/策略/模板方法/访问者/职责链)。设计模式四大价值:代码复用、开闭原则、高内聚低耦合、扩展性。

完整讲解

第一部分:知识重点剖析

核心考点定位:考察对设计模式本质认知(不是记住名字)+ GoF 标准分类体系掌握。

知识点拆解:

  1. 本质:设计模式是对反复出现的软件设计问题的通用解决方案模板,是思维模型而非代码片段,其内核是"用变化的对象封装变化的原因"(开闭原则的具象化)
  2. 分类体系:GoF 1994 年提出 23 种模式,按创建对象/组织对象/使用对象三维度分为创建型(5)/结构型(7)/行为型(11)
  3. 四大核心价值:
按「本质认知 → 分类体系 → 工程价值」递进。

第二部分:考察方向与延伸递进

考察方向:

延伸递进面试题:

  1. 设计模式和使用原则(SOLID)是什么关系?
  1. 模板方法模式和策略模式的区别是什么?如何选型?
  1. 你项目里用过哪些设计模式?解决了什么问题?

第三部分:面试者参考回答(300-600 字口语化)

面试官您好,设计模式本质上是一套被反复验证过的软件设计思维模板,它解决的是反复出现的设计问题,让我在遇到类似场景时不用从零开始思考。它传递的不只是代码结构,更是一种"如何应对变化"的设计哲学——用变化的对象封装变化的原因。

我理解的经典分类是 GoF 提出的 23 种,分三大类:创建型(单例、工厂方法、抽象工厂、建造者、原型)解决对象怎么造;结构型(适配器、桥接、组合、装饰器、外观、享元、代理)解决对象怎么组装;行为型(责任链、命令、观察者、状态、策略、模板方法等)解决对象怎么协作。

设计模式的价值我总结为四点:一是代码复用,比如模板方法把公共流程固定下来;二是开闭原则,策略和工厂让新增类型不改老代码;三是高内聚低耦合,外观模式和中介者模式把复杂子系统包起来;四是扩展性,观察者和责任链支持运行时动态增删处理节点。

在我的项目里,支付通道用策略模式扩展不同支付方式、审批流用责任链模式串起多级审核、事件通知用观察者解耦业务和消息推送,都是设计模式落地的典型场景。设计模式不是炫技,而是在合适场景下用最少的复杂度换最多的灵活性。