DRY 原则

DRY 原则

DRY 英文描述:

1
Don’t Repeat Yourself

中文翻译:

1
不要重复自己

一、如何理解 “DRY”?

从编程的角度去理解的话,其含义就是:

  • 不要编写重复的代码

这个概念很简单,就是不要做重复的事情。

DRY 原则实际上是要求尽量复用代码,而不要重复造轮子。

什么样的代码,才算是重复?

  • 实现逻辑重复:不同的方法里面,写了多份一样的代码
  • 功能语义重复:同样的功能,采用了不同的实现方式(比如正则判断、字符串对比)
  • 代码执行重复:在一个方法里面,执行了多次同一个方法

这几种情况都违反了 DRY 原则吗?

  • 实现逻辑重复:不算违反 DRY 原则,因为是属于不同的功能里面,只是逻辑有点类似而已
  • 功能语义重复:算是违反了 DRY 原则,同样的功能却弄了多个不同的实现
  • 代码执行重复:也算是违反了 DRY 原则,一次执行里面没必要调用多次同一个方法

那这几种情况一般要怎么处理呢?

  • 实现逻辑重复:只能说代码没有复用到,可以把公共代码提取到一个新方法里,供不同地方调用
  • 功能语义重复:只保留一份实现就可以了,其他的都删掉
  • 代码执行重复:应该将多次调用的方法结果保存到局部变量,避免多次执行

不管有没有违反 DRY 原则,在编写代码时,都应该尽量复用已有代码。

二、为什么要 “DRY”?

  • 降低维护成本,去掉重复代码后,就不需要修改多个地方
  • 避免逻辑不一致,这种问题的原因往往是因为漏改了其中一个地方的代码
  • 提高代码可读性,重复代码的实现可能是不一样的,会让人感到疑惑

三、如何实现 “DRY”?

DRY 原则要求尽量复用已有代码,这就要求代码要有可复用性,否则就没办法复用了。

所以要实现 DRY,首先就要提高代码的可复用性。

常见的提供代码复用性的方法:

  • 减少代码耦合
  • 满足单一职责原则
  • 模块化
  • 业务与非业务逻辑分离
  • 通用代码下沉
  • 抽象、封装、继承、多态
  • 应用设计模式

如何识别什么时候要执行 DRY 原则呢?

  • 多次在不同地方看到同样的代码(Rule of Three

多次是多少次?一般来说,超过 2 次都算是多次了。

一旦发现多个地方有重复代码,就应该用上面的方法进行重构,改造成可复用的代码。

作者

jiaduo

发布于

2022-11-05

更新于

2023-04-03

许可协议