OOP - 每个类的成员变量和方法的数量

时间:2012-08-06 11:23:53

标签: java oop

我在Java中有一个类,它有25个成员变量但只有两个“有用”的方法(不包括setter / getters)。我觉得好像有25个全局变量被左,右和中心修改,不知道发生了什么。这是正常的吗?是否有任何“良好实践”规则说明可以合理地将多少数据成员和方法封装在一个类中?

PS:我搜索了SO,但显然这个问题还没有被问到。

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

多少?不是我所知道的。

但我使用的规则是将变量保持在尽可能小的范围内。如果并非所有25个成员都代表对象的状态,则不是所有成员都需要成员。

答案 1 :(得分:1)

这听起来确实不对。

我希望每个班级都有一个single responsibility并委托给其他班级并与之合作。如果你有25个成员,那么听起来有很多事情发生。我希望重构这个类:

  1. 确定正在进行的操作(正在执行的操作/操作)
  2. 确定参与这些任务的成员组
  3. 将这些提取到执行该角色的对象中,并在适当的情况下委托给这些对象
  4. 在类中执行此操作可能是合适的,从而使重构对客户端类不可见。但是如果你有多个二传手/吸气者,我怀疑这不太可能。

    但是,您执行重构,请确保该区域由适当的单元测试集合覆盖。

答案 2 :(得分:0)

添加到其他答案后,请查看pmd rules TooManyFields 部分。

那里有说明

  

具有太多字段的类可能会变得难以处理   重新设计以减少字段,可能通过分组相关   新对象中的字段。例如,一个有个人的班级   city / state / zip字段可以将它们放在一个地址字段中。

其他规则也会派上用场,您可以使用pmdcheckstyle等工具来更好地了解代码如何符合标准。