数据泥团 Data Clumps
你常常可以在很多地方看到相同的三四项数据:两个类中相同的字段、许多函数签名中相同的参数。这些总是绑在一起出现的数据真应该拥有属于它们自己的对象。首先请找出这些数据以字段形式出现的地方,运用Extract Class将它们提炼到一个独立对象中。然后将注意力转移到函数签名上,运用Introduce Parameter Object或Preserve Whole Object为它减肥。这么做的直接好处是可以将很多参数列缩短,简化函数调用。是的,不必在意Data Clumps只用上新对象的一部分字段,只要以新对象取代两个(或更多)字段,你就值回票价了。
一个好的评判办法是:删掉众多数据中的一项。这么做,其他数据有没有因而 失去意义?如果它们不再有意义,这就是个明确信号:你应该为它们产生一个新对象。减少字段和参数的个数,当然可以去除一些坏味道,但更重要的是:一互拥有新对象,你就有扒会让程序散发出一种芳香。得到新对象后,你就可以着手寻找Feature Envy, 这可以帮你指出能够移至新类中的种种程序行为。不必太久,所有的类都将在它们的小小社会中充分发挥价值。