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