Java类应具有的最大实例变量数是多少?

时间:2012-06-18 06:31:08

标签: java oop

在JAVA类中有20-25个实例变量和它们的getter / setter,是否有良好的OO设计? 所有变量都是完全独立的 因为我在HBase中使用了一个类,它代表一个列族,所以列族可以为每一行提供不同数量的列。所以我必须在这个类中加入这么多变量。 我很好奇, 理想情况下JAVA类应该有多少个实例变量和方法?

5 个答案:

答案 0 :(得分:7)

尝试拥有良好的OO,最好是让班级负起单一的责任。 所以如果你有这么多不相关的变量,听起来这个课程做得太多了。

这将是一个“代码味道”,你应该考虑重新分解成多个类。

你很高兴你对好的OO感兴趣。我建议阅读Refactoring和Code Smells。

http://c2.com/cgi/wiki?OneResponsibilityRule在这里是相对的..

答案 1 :(得分:4)

只要你确保低coupling,这并不重要。为类分配如此多的变量可能会增加高耦合的可能性。

此外,它可能是你班级cohesion低的标志,而不是理想的高凝聚力。

答案 2 :(得分:2)

在20-25个实例变量中你应该在限制范围内,但是,我认为20-25可能太多了。您可以尝试将这些组合到不同的类中,并减少实例变量的数量。

通常具有大量实例变量会使类的范围受限,这在您希望维护解决方案的情况下并不理想。分解(如果正确完成)应该会增加某些课程的可重用性。

答案 3 :(得分:0)

Java对类可以拥有的java实例变量没有任何限制。根据您的要求,您可以拥有任意数量的实例变量。

要记住的关键点是,只能通过getter和setter方法访问。用户不应该使用实例变量的名称直接访问它们。

表示实例变量应该使用私有修饰符声明,并且必须提供公共方法来访问和操作它们。

答案 4 :(得分:0)

好吧,如果你的类代表数据持有者对象,那么完全可以接受它。这种设计在java bean中很常见。

例如,如果您有一个代表公司员工的班级,那么如果员工有20-25个属性,则通常很常见。

但是,如果您使用业务方法搞乱这么多实例变量,那么您将面临困难,因为您将无法获得集中和专注的业务组件。

为了使架构更好,你可以考虑继承(子类)或组合(内部类)