我正在寻找在我的应用程序中使用Guava EventBus来从一个或多个数据创建者向数据使用者分发数据(例如,Double
)。有条件的订阅与Guava EventBus
我知道我的消费者类,我需要注释我的数据处理程序与@Subscribe
。有没有办法让这个订阅有条件?因此,例如
@Subscribe {newValue > 0.0} public void valueUpdated(Double newValue)
我能我valueUpdated
方法中添加了检查,但有没有办法从调度值,我的订阅者不感兴趣停止EventBus
?
有没有类似于EventBus的产品可以提供这种功能?
我没有看到有条件分发的DSL在处理程序中的第一句相同条件下的显着优势。事实上,DSL可能会大幅放缓。 –
@U Mad - 感谢您的评论。我有一个用例,我可以有大量的用户。在这种情况下,我认为有条件调度可能更有效率。虽然我同意让处理程序中的条件变得更简单。 – Luhar
我不认为你可以在这里获得任何加速,至少不会有没有数千用户和/或普通无条件案件放缓。像'{newValue> 0.0}这样写的,它需要一个解释器,它在代码中的成本可能会超过几百次。像MyPositiveDoublePredicate.class这样写就可以快得多,但不是特别方便。在任何情况下,它都会给普通用户带来一些成本。 – maaartinus