我正在使用CDI并希望了解调用者如何通知观察者已观察到事件或未观察到事件。如果没有观察到该事件的行为,那么我想做点什么。我没有看到文档中的任何地方都记录了这一点,除了提示通知了调用者。
谢谢,
沃尔特
答案 0 :(得分:3)
我认为调用者不会得到通知(实际上并不是观察者模式的内容)。但你可以尝试通过以下方式解决这个问题:
您可以在事件对象中设置一个字段 - private boolean consumed
,如果已消耗,则将其设置为true
。然后,(在事件生成器中同步处理事件)检查该变量。
从事件生产者
如果你想放弃松散耦合的好处,并且你确切地知道事件生成器是什么,你可以@Inject
将它放入所有的监听器中,并让它们调用一个方法< / p>