3.7 DRY原则
3.7.1 DRY 原则(Don’t Repeat Yourself)
- 三种代码重复的情况:实现逻辑重复、功能语义重复、代码执行重复。
- 实现逻辑重复,但功能语义不重复的代码,并不违反 DRY 原则。
- 实现逻辑不重复,但功能语义重复的代码,也算是违反 DRY 原则。
- 除此之外,代码执行重复也算是违反 DRY 原则。
3.7.2 代码复用性
-
提高代码可复用性的一些方法
- 减少代码耦合
- 满足单一职责原则
- 模块化
- 业务与非业务逻辑分离
- 通用代码下沉
- 继承、多态、抽象、封装
- 应用模板等设计模式
-
复用意识也非常重要。在设计每个模块、类、函数的时候,要像设计一个外部 API 一样去思考它的复用性。
-
Rule of Three
第一次编写代码的时候,不考虑复用性;第二、三次遇到复用场景的时候,再进行重构使其复用。
-
辣么大:
1、注释或者文档违反DRY
2、数据对象违反DRY对于1,例如一个方法。写了好多的注释解释代码的执行逻辑,后续修改的这个方法的时候可能,忘记修改注释,造成对代码理解的困难。实际应用应该使用KISS原则,将方法写的见名知意,尽量容易阅读。注释不必过多。
对于2、例如类
class User{ String id; Date registerDate; int age; int registedDays; } //其中 age可以由身份证号码算出来,而且每年都会递增。 //注册会员多少天了,也可以算出来。所以是不是可以考虑,数据只存储id和注册时间。其余两个字段可以算出来。