代码的坏味道(10)——发散式变化(Divergent Change)

坏味道——发散式变化(Divergent Change)

发散式变化(Divergent Change) 类似于 霰弹式修改(Shotgun Surgery) ,但实际上完全不同。发散式变化(Divergent Change) 是指一个类受多种变化的影响。霰弹式修改(Shotgun Surgery) 是指多种变化引发多个类相应的修改。

特征

你发现你想要修改一个函数,却必须要同时修改许多不相关的函数。例如,当你想要添加一个新的产品类型时,你需要同步修改对产品进行查找、显示、排序的函数。

代码的坏味道(10)——发散式变化(Divergent Change)

问题原因

通常,这种发散式修改是由于编程结构不合理或者“复制-粘贴式编程”。

解决办法

  • 运用 提炼类(Extract Class) 拆分类的行为。

收益

  • 提高代码组织结构
  • 减少重复代码

重构方法说明

提炼类(Extract Class)

问题

某个类做了不止一件事。
代码的坏味道(10)——发散式变化(Divergent Change)

解决

建立一个新类,将相关的字段和函数从旧类搬移到新类。
代码的坏味道(10)——发散式变化(Divergent Change)

引申阅读

欢迎继续阅读 代码的症与药 系列文章。

上一篇:JSP注意点


下一篇:【Away3D代码解读】(三):渲染核心流程(渲染)