代码的坏味道之五 :Divergent Change(发散式变化)
2013-05-02 14:06
405 查看
我们希望软件能够更容易被修改——毕竟软件再怎么说本来就该是「软」的。一旦需要修改,我们希望能够跳到系统的某一点,只在该处做修改。如果不能做到这点,你就嗅出两种紧密相关的刺鼻味道中的一种了。
如果某个class经常因为不同的原因在不同的方向上发生变化,Divergent Change就出现了。当你看着一个class说:『呃,如果新加入一个数据库,我必须修改这三个函数;如果新出现一种金融工具,我必须修改这四个函数』,那么此时也许将这个对象分成两个会更好,这么一来每个对象就可以只因一种变化而需要修改。当然,往往只有在加入新数据库或新金融工具后,你才能发现这一点。针对某一外界 变化的所有相应修改,都只应该发生在单一class中,而这个新class内的所有内容都应该反应该外界变化。为此,你应该找出因着某特定原因而造成的所有变化,然后运用Extract
Class(提炼类) 将它们提炼到另一个class中。
如果某个class经常因为不同的原因在不同的方向上发生变化,Divergent Change就出现了。当你看着一个class说:『呃,如果新加入一个数据库,我必须修改这三个函数;如果新出现一种金融工具,我必须修改这四个函数』,那么此时也许将这个对象分成两个会更好,这么一来每个对象就可以只因一种变化而需要修改。当然,往往只有在加入新数据库或新金融工具后,你才能发现这一点。针对某一外界 变化的所有相应修改,都只应该发生在单一class中,而这个新class内的所有内容都应该反应该外界变化。为此,你应该找出因着某特定原因而造成的所有变化,然后运用Extract
Class(提炼类) 将它们提炼到另一个class中。
相关文章推荐
- 代码的坏味道05:发散式变化(Divergent Change)
- 重构 之 总结代码的坏味道 Bad Smell (一) 重复代码 过长函数 过大的类 过长参数列 发散式变化 霰弹式修改
- 【重构】 代码的坏味道总结 Bad Smell (一) (重复代码 | 过长函数 | 过大的类 | 过长参数列 | 发散式变化 | 霰弹式修改)
- 【重构】 代码的坏味道总结 Bad Smell (一) (重复代码 | 过长函数 | 过大的类 | 过长参数列 | 发散式变化 | 霰弹式修改)
- 【整理】【代码的坏味道】放散式变化(Divergent Change)
- 代码坏的味道19:不完美的库类 (Incomplete Library Class)
- 代码的坏味道
- 『重构--改善既有代码的设计』读书笔记----代码坏味道【4】
- 《重构改善既有代码的设计》——代码的坏味道
- 二十一种代码坏味道
- 21种代码的“坏味道”
- 《重构---改善既有代码的设计》总结二之代码的坏味道
- eclipse左边导航(菜单栏)package explorer自动定位(跟随打开的代码变化位置)、导航栏消失找不到解决
- 代码的坏味道之五 ——译自《重构》
- 【整理】【代码的坏味道】过大类(Large Class)
- 重构-代码的坏味道
- 如何编写出拥抱变化的代码?
- 代码的坏味道之十 :Switch Statements(switch惊悚现身)
- 图片变化代码
- 如何编写出拥抱变化的代码?