OO:依赖类需要祖父母类的信息

时间:2019-05-29 18:17:12

标签: java oop

A类具有通过C类实现的B类(接口)

在A类中,它对C类一无所知,只是与B类对话。
这样做是为了如果需要将C类替换为D类(或其他任何类),我们可以做到而无需对A类(及其与B类的交互)进行任何更改

现在,A类具有一个会定期更新的变量。我希望C类使用该信息。但是我不希望C类具有依赖关系,直到A类。

我能想到的两件事是:
1)只需将A类的值传递给B类,然后将其传递给C类
2)创建另一个A类和C类依赖的类(称为类StateHolder),它们可以通过此新类传递信息

我认为我倾向于(2),但我想知道是否还有其他选择,或者(1)是否比(2)好,反之亦然

2 个答案:

答案 0 :(得分:0)

如果您不想直接耦合A类和C类,那么C类可能应该有一个接口(D),而A可以实现D或具有一个这样做的成员变量。

答案 1 :(得分:0)

只需在classB / C中添加一个额外的方法,即可将该值作为参数。然后,您只需要在classA中调用该方法即可。