“
当你看着一个类说,呃,如果新加入一个数据库,我必须修改这三个函数;如果新出现一种金融工具,我必须修改这四个函数。那么,此时也许将这个类分成两个会更好,这么一来每个对象就可以只因一种变化而需要修改。
”
上述特征的名称叫做:Divergent Change。它表示,某个类经常因为不同的原因在不同的方向上发生变化。比如,上述的类,有两个原因,会导致这个类在两个不同的方向上发生变化。
我们认为,一个类,只会因为一种原因而导致变化,这才是好的。如果,这个类,会因为多种原因发生变化,那么,我们就要重构这个类。找出这个类中某种原因导致的所有变化,将这部分内容提炼到一个新的类中,使用Extract Class手法,然后,新的类将只会因为一种原因而导致变化。
比如,上述的类,会因为两个不同的原因,在不同的方向上发生变化,那么,就可以提炼其中一种原因导致变化的相关代码,作为新的类。比如,新加入一个数据库,导致的变化,这部分代码提炼到新类A中。这样,新类只会因为数据库的原因而发生变化。
例子:待定。