我们说我有3个班级,A,B& ç
A类,'了解'B类和C类。
但是,B类不了解C类,我需要从B类的C类对象中访问相当多的变量。
我可以将一个简单的'Getter'或'Proxy'方法放到A类中,它允许我访问所需对象的变量,但是,由于它们中有很多(20+),它似乎是一个相当漫长的方式这样做。
我无法将变量移动到另一个类中,因为它会破坏我的代码的其他部分(我的实际代码大约是24个类,所以我不想对它进行大手术!)
访问这些变量的可接受方法是什么?
帮助表示赞赏
答案 0 :(得分:1)
除非提供批量访问存在缺点,否则可能存在对整个B对象的简单访问者,这将阻止必须在A
中维护任何内容,例如在添加或删除getter或setter时B
。
对B中的每个变量都有一个访问函数并不一定是坏事,因为这是组合(as opposed to继承)背后的基本概念。维护这个样板是一件痛苦的事,但这样做并不总是不合理的。
关于您刚刚发布的问题:这会导致C
通过两个点访问B
中的所有内容,如您所说:aInstance.getB().getSomethingInB()
。但是你要么在A
中维护样板,要么在C
中使用它们时要维护双点访问器。我选择双点,至少在这种情况下。
我要查看Demeter的事情:)