CDI - 是观察者观察事件时通知的呼叫者?

时间:2010-10-02 06:08:04

标签: java observer-pattern cdi

我正在使用CDI并希望了解调用者如何通知观察者已观察到事件或未观察到事件。如果没有观察到该事件的行为,那么我想做点什么。我没有看到文档中的任何地方都记录了这一点,除了提示通知了调用者。

谢谢,

沃尔特

1 个答案:

答案 0 :(得分:3)

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

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

  • 从事件生产者

  • 观察到的观察者发起新事件
  • 如果你想放弃松散耦合的好处,并且你确切地知道事件生成器是什么,你可以@Inject将它放入所有的监听器中,并让它们调用一个方法< / p>