背景:
我们有一个使用GWT
的应用程序和提供GWTP
架构的MVP
框架。我们使用GWT
的{{1}}在演示者之间广播事件。
要求:
我们有一个名为EventBus
的活动。触发事件的类/演示者是RefreshEvent
,并且听取此事件的演示者是Parent(P)
。我们遇到了应用程序中的情况,其中Child(C)
(侦听器)的多个实例在应用程序中同时处于活动状态。假设演示者C
的实例A
和实例B
处于活动状态,并且两者都在监听C
。但是在应用程序的给定上下文中,我想有选择地触发事件。这是由RefreshEvent
触发的RefreshEvent
只能由P
的实例A
接收,而不是Child C
的实例B
。
Child C
是否提供了执行此操作的机制?如果没有,我怎么能实现这一目标。
我们的应用程序大量使用事件进行演示者之间的通信。
答案 0 :(得分:0)
通常,EventBus用于向收听它的每一方“广播”一个事件(在您的示例中,您的Child C的所有实例)。
如果你想要一个单一的关系,你的父母可以简单地打电话给必要的孩子:
private Child a;
private Child b;
...
public void on onRefresh() {
/*
* If you need to call child a, call a.doSomething();
* If you need to call child b, call b.doSomething();
*/
}