CDI - 当观察者观察到事件时是否通知调用者?
-
27-09-2019 - |
题
我正在使用 CDI,想知道如何通知调用者观察者是否观察到事件。如果没有观察者对该事件采取行动,那么我想做点什么。除了通知调用者的提示之外,我没有在文档中的任何地方看到这一点。
谢谢,
瓦尔特
解决方案
我认为调用者不会收到通知(这不是观察者模式实际上的目的)。但您可以尝试通过以下方式解决此问题:
你可以有一个事件对象的字段 -
private boolean consumed
并将其设置为true
如果它被消耗了。然后,(事件被同步处理)在事件生成器中检查该变量。从事件生产者观察到的观察者激发一个新事件
如果您想放弃松散耦合的好处,并且您确切地知道事件生产者是谁,您可以
@Inject
它进入所有侦听器,并让他们调用它的方法
不隶属于 StackOverflow