也可以称为:提高代码质量的方法论
面向对象设计思想
设计原则
我的疑问:接口隔离原则和迪米特法则有什么区别?
重构技巧
编码规范
设计模式
创建型 设计模式
创建型模式主要解决对象的创建问题,封装复杂的创建过程,解耦对象的创建代码和使用代码。
- 单例模式用来创建全局唯一的对象。
- 工厂模式用来创建类型不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象。
- 建造者模式是用来创建复杂对象,可以通过设置不同的可选参数,“定制化”地创建不同的对象。
- 原型模式针对创建成本比较大的对象,利用对已有对象进行克隆的方式进行创建,达到节省创建时间的目的。
结构型 设计模式
结构型模式主要总结了一些类或对象组合在一起的经典结构,这些经典的结构可以解决特定应用场景的问题。
基于“组合优于继承”设计思想的结构型设计模式
- 桥接模式
- 装饰器模式
行为型 设计模式
编写高质量代码的手段
解决代码重复问题的手段
保证代码质量的手段
提高代码可复用性的手段
21 | 理论七:重复的代码就一定违背DRY吗?如何提高代码的复用性?
解耦实现代码的高内聚松耦合
22 | 理论八:如何用迪米特法则(LOD)实现“高内聚、松耦合”?
30 | 理论四:如何通过封装、抽象、模块化、中间层等解耦代码?
解耦的目的是:实现代码高内聚、松耦合。
解耦有效控制代码的复杂性。
https://www.yuque.com/haofeiyu/design/orgwl7?inner=C77A5
采用分层开发
24 | 实战一(下):如何实现一个遵从设计原则的积分兑换系统?
如何发现代码质量问题
函数出错该返回什么
36 | 实战二(上):程序出错该返回啥?NULL、异常、错误码、空对象?
对出错处理的四种方式的说明:
- 返回错误码:大部分情况下,我们都用异常来处理函数出错的情况,极少会用到错误码。
- 返回 NULL 值:是返回 NULL 值还是异常对象,要看获取不到数据是正常行为,还是异常行为。
- 返回空对象:当函数返回的数据是字符串类型或者集合类型的时候,我们可以用空字符串或空集合替代 NULL 值,来表示不存在的情况。这样,我们在使用函数的时候,就可以不用做 NULL 值判断。
- 抛出异常:
- 对于代码 bug(比如数组越界)以及不可恢复异常(比如数据库连接失败),倾向于使用非受检异常(运行时异常)。对于可恢复异常、业务异常,比如提现金额大于余额的异常,倾向于使用受检异常(编译时异常),明确告知调用者需要捕获处理。
- 至于是直接将抛出,还是重新封装成新的异常抛出,要看函数跟异常是否有业务相关性。