我有一个Vaadin MVP架构,一段时间以来,我在演示者之间存在循环依赖关系的问题。
我的演示者通常会有show(...)
方法,它会使用导航器更改视图,并使用参数显示一些数据。
问题是应用程序越复杂,我在演示者之间进行循环调用就越多。
A -> B.show(X)
B -> A.show(Y)
将数据移交给其他演示者的最佳方法是什么,而不会遇到循环依赖的问题。
答案 0 :(得分:0)
我看到两个选项:
这是一个大纲:
interface A {
interface Observer {
void onEventX(EventX event);
}
void setObserver(Observer o);
void show(Data data);
}
// analog in B
class C implements A.Observer, B.Observer {
private A a;
private B b;
public C(A a, B b){
a.setObserver(this);
b.setObserver(this);
}
@Override // overrides A's Observer
public void onEvent(EventX event){
b.show(event.getData());
}
}