在JAVA类中有20-25个实例变量和它们的getter / setter,是否有良好的OO设计? 所有变量都是完全独立的 因为我在HBase中使用了一个类,它代表一个列族,所以列族可以为每一行提供不同数量的列。所以我必须在这个类中加入这么多变量。 我很好奇, 理想情况下JAVA类应该有多少个实例变量和方法?
答案 0 :(得分:7)
尝试拥有良好的OO,最好是让班级负起单一的责任。 所以如果你有这么多不相关的变量,听起来这个课程做得太多了。
这将是一个“代码味道”,你应该考虑重新分解成多个类。
你很高兴你对好的OO感兴趣。我建议阅读Refactoring和Code Smells。
答案 1 :(得分:4)
答案 2 :(得分:2)
在20-25个实例变量中你应该在限制范围内,但是,我认为20-25可能太多了。您可以尝试将这些组合到不同的类中,并减少实例变量的数量。
通常具有大量实例变量会使类的范围受限,这在您希望维护解决方案的情况下并不理想。分解(如果正确完成)应该会增加某些课程的可重用性。
答案 3 :(得分:0)
Java对类可以拥有的java实例变量没有任何限制。根据您的要求,您可以拥有任意数量的实例变量。
要记住的关键点是,只能通过getter和setter方法访问。用户不应该使用实例变量的名称直接访问它们。
表示实例变量应该使用私有修饰符声明,并且必须提供公共方法来访问和操作它们。
答案 4 :(得分:0)
好吧,如果你的类代表数据持有者对象,那么完全可以接受它。这种设计在java bean中很常见。
例如,如果您有一个代表公司员工的班级,那么如果员工有20-25个属性,则通常很常见。但是,如果您使用业务方法搞乱这么多实例变量,那么您将面临困难,因为您将无法获得集中和专注的业务组件。
为了使架构更好,你可以考虑继承(子类)或组合(内部类)