从分离的'中访问多个变量课程(无能见度)

时间:2014-03-18 02:05:09

标签: java class proxy setter getter

我们说我有3个班级,A,B& ç

A类,'了解'B类和C类。

但是,B类不了解C类,我需要从B类的C类对象中访问相当多的变量。

我可以将一个简单的'Getter'或'Proxy'方法放到A类中,它允许我访问所需对象的变量,但是,由于它们中有很多(20+),它似乎是一个相当漫长的方式这样做。

我无法将变量移动到另一个类中,因为它会破坏我的代码的其他部分(我的实际代码大约是24个类,所以我不想对它进行大手术!)

访问这些变量的可接受方法是什么?

帮助表示赞赏

enter image description here

1 个答案:

答案 0 :(得分:1)

除非提供批量访问存在缺点,否则可能存在对整个B对象的简单访问者,这将阻止必须在A中维护任何内容,例如在添加或删除getter或setter时B

对B中的每个变量都有一个访问函数并不一定是坏事,因为这是组合(as opposed to继承)背后的基本概念。维护这个样板是一件痛苦的事,但这样做并不总是不合理的。

关于您刚刚发布的问题:这会导致C通过两个点访问B中的所有内容,如您所说:aInstance.getB().getSomethingInB()。但是你要么在A中维护样板,要么在C中使用它们时要维护双点访问器。我选择双点,至少在这种情况下。

我要查看Demeter的事情:)