拥有大量数据字段是件坏事吗?

时间:2011-07-22 10:27:12

标签: java field

在Java中,在大约1000行的类中有大约50个数据字段是件坏事吗?

修改:感谢您的反馈。真的让我睁开眼睛,我会尝试将功能委托给更多的课程而不是单一的do-everything课程。 :)

7 个答案:

答案 0 :(得分:8)

问题非常模糊。答案可以是肯定和否定。是的,如果您可以将功能完全分解为更多类,那将是一件坏事。不,如果课程重点突出并且你获得50个领域的唯一原因是因为你需要它们,这不是一件坏事。

例如,我有一个包含70个字段的900行的类,但那是因为该类实现了一些人工智能,而AI算法使用的参数是很多需要在那里定义的行为和阈值所以那个孩子课程调整它们。就我而言,我会说这不是一个糟糕的架构,我14年的软件开发似乎同意:: - 。

当然,如果课程超过1000行,我可以将其分解为2:运动AI和攻击AI,但是现在,在我的项目环境中将它组合在一起是非常有意义的,因为运动AI并且攻击AI永远不会独立应用:它们一起工作,它们应该在同一个类中。如果我必须制作一个只需要移动AI的物体,那么无论如何,我都会把它分成2个。

答案 1 :(得分:4)

来自Code Complete的

  

批评包含超过七个数据成员的类:数字“7±2”被发现是一个人在执行其他任务时可以记住的一些离散项目(Miller 1956)。如果一个类包含超过七个数据成员,请考虑是否应该将该类分解为多个较小的类(Riel 1996)。如果数据成员是整数和字符串等原始数据类型,则可能更倾向于7±2的高端,如果数据成员是复杂对象,则更倾向于7±2的下端。

答案 2 :(得分:3)

是的,这是代码味道,会使您的代码更难以阅读和修改。您的课程将成为God object

Jeff有一篇很好的文章,我们所有人都应该阅读它。

答案 3 :(得分:2)

听起来不错,但谁知道呢。实际上,你可能找到了一个需要50个字段的对象,所有这些字段都是相互关联的,并且需要在一个对象中。

如果没有,为了保持理智,尽量将其分成较小的部分。

答案 4 :(得分:1)

短篇小说;是。很长的故事;这是非常主观的。一个1000行的类似乎非常过分。所有这些领域真的相关吗?课程应该集中(表现出高凝聚力)。尝试将您的字段拆分为更小,更紧密集中的类。

答案 5 :(得分:1)

我认为最糟糕的是要有一个大约1000行的类...如果可能的话,尝试重构它以使它更小......

答案 6 :(得分:0)

不一定,但它通常意味着你的班级应该分成几个班级,就像它对许多事情做的那样,或者你的班级承担应该在其他班级中的责任。这取决于您的应用程序的设计。