1. 为什么要学习设计模式?
- 应对面试。
- 告别写被别人吐槽的烂代码。
- 提高复杂代码的设计和开发能力。
- 让读源码、学框架事半功倍。
- 为职场发展做铺垫。
早就是优势!
2. 从哪些维度评判代码的好坏?
- 可维护性。
- 可读性。
- 可扩展性。
- 灵活性。
- 简洁性。
- 可复用性。
- 可测试性。
其中最重要的提的最多的是:可维护性、可读性、可扩展性。
3. 如何写出高质量的代码?
需要掌握更加细化、更加能落地的编程方法论,包括:面向对象设计思想、设计原则、设计模式、编程规范、重构技巧等。
4. 面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
-
面向对象——主流的编程风格(编程范式)。面向对象编程因为其具有丰富的特性(封装、抽象、继承、多态),可以实现很多复杂的设计思路,是很多设计原则、设计模式等编码实现的基础。
-
设计原则——代码设计的一些经验总结。掌握其设计初衷,能解决的编程问题,应用场景。SOLID 原则等。设计原则是指导我们代码设计的一些经验总结,对于某些场景下,是否应该应用某种设计模式,具有指导意义。比如,“开闭原则”是很多设计模式(策略、模板等)的指导原则。
-
设计模式——针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路。主要是为了解决代码的可扩展性问题。学习难点是了解其解决的问题,掌握其典型使用场景,不过度应用。从抽象程度上看,设计原则比设计模式更抽象,设计模式更加具体、更加可执行。
类型 设计模式常用 设计模式不常用 创建型 单例模式、工厂模式(工厂方法和抽象工厂)、建造者模式 原型模式 结构型 代理模式、桥接模式、装饰者模式、适配器模式 门面模式、组合模式、享元模式 行为型 观察者模式、模板模式、策略模式、责任链模式、迭代器模式、状态模式 访问者模式、备忘录模式、命令模式、解释器模式、中介模式 -
编程规范——主要解决代码的可读性问题。编程规范相对于设计原则、设计模式,更加具体、更加偏重代码细节、更加能落地。持续的小重构依赖的理论基础主要就是编程规范。
-
代码重构——保证代码质量不下降的有效手段,利用的就是面向对象、设计原则、设计模式、编程规范这些理论。
声明:以上内容学习摘选自王争老师的极客时间专栏《设计模式之美》,仅供学习使用。更详细的讲解,大家可以在极客时间购买王争老师的课程。如果侵犯相关利益,请联系博主删除。