JAVA中的对象分层调用

时间:2013-12-04 05:09:46

标签: java class hierarchy

我有一个关于对象分层调用的问题。

我有四个班,即A,B,C,D。

D将在C中设置; C将在B中; B将在A。

如果我想在D类中做某事,我必须调用abcdsetWidth(“50%”);(a,b,c,d是A,B,C,D类的实例)。

那样打电话好吗?这会影响性能吗?

2 个答案:

答案 0 :(得分:5)

对性能的影响将非常轻微......更大的问题是对面向对象模型的影响。

直接访问类的成员是皱眉的,并且您正在运行NullPointerExceptions的风险。

您应该更担心的是代码的可读性和可维护性。

答案 1 :(得分:1)

这样打电话是完全合法的。我认为它会有性能问题。 但设计并不好。 您应该在代码中使用getter和setter。 例如 : 在您的情况下:a.getB().getC().getD().setWidth("50%")

在A类中,将B的变量声明为私有,并且类似于B和C类。 它将确保面向对象设计的数据隐藏和封装原则。