0

我正在使用 CDI 并想知道调用者如何被通知观察者观察到或没有观察到事件。如果没有观察者对该事件采取行动,那么我想做点什么。除了提示调用者被通知外,我没有看到文档中的任何地方都记录了这一点。

谢谢,

沃尔特

4

1 回答 1

3

我不认为调用者被通知(这实际上不是观察者模式的内容)。但是您可以尝试通过以下方式解决此问题:

  • 您可以拥有一个事件对象的字段 -如果它被消耗,则将其private boolean consumed设置为。true然后,(事件被同步处理)在事件生产者中检查该变量。

  • 从事件生产者观察到的观察者触发一个新事件

  • 如果你想放弃松耦合的好处,并且你确切地知道事件生产者是谁,你可以@Inject把它放到所有的监听器中,让他们调用它上面的方法

于 2010-10-02T06:54:55.847 回答