我有一个关于对象层次调用的问题。
我有四个类,分别是A、B、C、D。
D将被设置在C中;C将被设置在B中;B将被设置在A中。
如果我想在D类中做一些事情,我必须调用a.b.c.d.setWidth("50%");(a、b、c、d是类A、B、C、D的实例)。
像这样调用可以吗?会影响性能吗?
我有一个关于对象层次调用的问题。
我有四个类,分别是A、B、C、D。
D将被设置在C中;C将被设置在B中;B将被设置在A中。
如果我想在D类中做一些事情,我必须调用a.b.c.d.setWidth("50%");(a、b、c、d是类A、B、C、D的实例)。
像这样调用可以吗?会影响性能吗?
性能的影响将非常轻微......更大的问题是这对你的面向对象模型有什么影响。
直接访问类成员是不被赞同的,你会面临NullPointerExceptions的风险。
你应该更担心的是代码的可读性和可维护性。
这样的调用是完全合法的,我不认为会有性能问题。但是设计不好。你应该在代码中使用getter和setter。例如:a.getB().getC().getD().setWidth("50%")
。
在类A中,将B变量声明为私有,类似地,在类B和C中也是如此。这将确保面向对象设计的数据隐藏和封装原则。