事件聚合模式如何为订户管理其不同的发布者



在事件聚合器模式中,发布者通过聚合器将事件发布给聚合器和订户订阅特定事件。

假设有3个订户SubscriberASubscriberBSubscriberC。他们都想订阅一个称为OnPowerUpEvent的事件。OnPowerUpEvent可以通过PowerItemAPowerItemB触发。PowerItemAPowerItemB也可以有多个实例。

基于这种情况,我不了解事件聚合模式如何允许订阅者订阅特定发布者发布的事件。在我看来,订户通常只能订阅事件OnPowerUpEvent,无论出版商是谁。

例如,SubscriberA可能需要订阅由任何任何 PowerItemA实例发布的事件OnPowerUpEventSubscriberB可能要订阅由PowerItemB的A 特定实例发布的事件OnPowerUpEventSubscriberC可能想订阅事件OnPowerUpEvent不管是谁是谁。

在这三种不同的情况下,事件聚合图模式如何管理?

流行事件聚合器实现不仅提供简单的发布/订阅功能,而且提供更多comples订阅过滤基础结构,例如Prism EventAggregator允许提供谓词与处理程序:(请参阅MSDN)

FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>();
fundAddedEvent.Subscribe(FundAddedEventHandler, 
                         ThreadOption.UIThread, false,
                         fundOrder => fundOrder.CustomerId == _customerId);

相关内容

  • 没有找到相关文章

最新更新