主题
面试速答(先看这里)
**一句话结论:**首先,设计模式是一些前人经验的一些总结,所以,当遇到相似的问题的时候,我们可以直接借鉴好的设计模式来实现,这样可以大大 降低我们的试错成本和迭代成本 。
60秒标准回答:
设计模式是在软件开发过程中经常遇到的问题的 通用解决方案 。它们是经过无数的验证和经验积累的 最佳实践
首先,设计模式是一些前人经验的一些总结,所以,当遇到相似的问题的时候,我们可以直接借鉴好的设计模式来实现,这样可以大大 降低我们的试错成本和迭代成本 。可以大大 提升我们的开发速度
不要认为只有23种,只要 是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结都是软件设计模式的。比如说MVC
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
回答主线:
- **要点1:**设计模式是在软件开发过程中经常遇到的问题的 通用解决方案 。
- **要点2:**不要认为只有23种,只要 是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结都是软件设计模式的。
- **要点3:**而且,设计模式都是遵守了很多设计原则的,这些原则 可以帮助我们大大提升代码的可重用性、可维护性和可扩展性等。
- **要点4:**设计模式通过使用松耦合的对象之间的交互,使系统更容易进行扩展和修改。
- **要点5:**还有一点比较重要,那就是设计模式其实也是一种 通用语言。
**记忆锚点:**设计模式 → 直接借鉴好的设计模式 → 总结都是软件设计模式 → 通过引入抽象层和接口 → 那就是设计模式 → 通用解决方案
易错提醒:
- 不要认为只有23种,只要 是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结都是软件设计模式的。
- 设计模式通过使用松耦合的对象之间的交互,使系统更容易进行扩展和修改。
加分表达:
- 它们是经过无数的验证和经验积累的 最佳实践。
追问准备:
- 围绕「设计模式」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「直接借鉴好的设计模式」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「总结都是软件设计模式」:底层原理是什么?使用时有哪些边界和常见坑?
- 如果线上出现异常,你会如何定位、验证并规避?
典型回答
设计模式是在软件开发过程中经常遇到的问题的通用解决方案。它们是经过无数的验证和经验积累的最佳实践。
首先,设计模式是一些前人经验的一些总结,所以,当遇到相似的问题的时候,我们可以直接借鉴好的设计模式来实现,这样可以大大降低我们的试错成本和迭代成本。可以大大提升我们的开发速度。
> 不要认为只有23种,只要是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结都是软件设计模式的。比如说MVC
而且,设计模式都是遵守了很多设计原则的,这些原则可以帮助我们大大提升代码的可重用性、可维护性和可扩展性等。
设计模式通过使用松耦合的对象之间的交互,使系统更容易进行扩展和修改。通过引入抽象层和接口,可以将变化的部分隔离出来,而不影响整个系统的其他部分。提高了代码的可扩展性。
还有一点比较重要,那就是设计模式其实也是一种**通用语言。**他使得团队成员之间交流更加的顺畅。当我们提到单例、模板、策略、责任链,大家都知道是怎么回事儿。
可以很快速的就get到其他人要说的意思,不仅可以提升沟通效率,还能降低后续代码维护中的出错概率。