我有一个 Java 类,它有 25 个成员变量,但只有两个“有用”的方法(不包括 setter/getter)。我觉得好像有 25 个全局变量在左、右和中心被修改,不知道发生了什么。这是正常的吗?是否有任何“良好实践”规则说明可以在一个类中合理封装多少数据成员和方法?
PS:我搜索了SO,但显然这个问题还没有被问到。
谢谢你的帮助 !
多少?从来没听说过。
但我使用的规则是将变量保持在尽可能小的范围内。如果不是所有的 25 个成员都代表对象的状态,那么也不是所有的成员都需要是成员。
这听起来肯定是错误的。
我希望每个班级都有一个单一的职责,并委托给其他班级并与其他班级合作。如果您有 25 名成员,那么听起来会发生很多事情。我希望重构这个类:
在类中执行此操作可能是合适的,从而使重构对客户端类不可见。但是,如果您有多个 setter/getter,我怀疑这不太可能。
无论您如何执行重构,请确保该区域被适当的单元测试集覆盖。
添加到其他答案看一下pmd rules的TooManyFields部分。
那里说
具有太多字段的类可能会变得笨拙,并且可以重新设计以具有更少的字段,可能通过将相关字段分组到新对象中。例如,具有单独城市/州/邮编字段的类可以将它们停放在单个地址字段中。
其他规则也会派上用场,您可以使用pmd和checkstyle等工具来更好地了解您的代码如何遵守标准。