1 符号和症状

有时候代码的不同部分含有相同的变量组(如用于连接数据库的参数)。这些数据团应该放到类中。
06 代码坏味之肿胀-5:数据团 - 图1

2 病因

这种数据组通常源自不好的程序结构,或者来自“抄袭式编程”。
要确认某些数据是不是数据团,只需要删除一个数据值,看看其他值是不是还能工作。如果不能,则这一组变量应该组合到对象中。

3 治疗

  • 如果重复的数据是类的字段,通过抽取类来将这些字段移动到它们自己的类中。
  • 如果数据团作为方法参数传递,试试引入参数对象
  • 如果某些数据被传递到其他方法,试试传递整个数据对象,而不是单独的字段,也就是保留整个对象
  • 检查下使用这些字段的代码,把它们放到一个数据类中可能是一个好主意。
    06 代码坏味之肿胀-5:数据团 - 图2

    4 疗效

  • 代码更容易理解,组织得更好。对特定数据的操作被收集到单个地方,而不是分散地出现在代码中的多个地方。

  • 减小代码量。

06 代码坏味之肿胀-5:数据团 - 图3

5 注意

在方法参数中传递整个对象,而不是仅传递值(原始类型),可能会在两个类之间引入非预期的依赖。