首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事件聚合器模式如何为其订阅者管理其不同的发布者?

事件聚合器模式如何为其订阅者管理其不同的发布者?
EN

Stack Overflow用户
提问于 2012-10-20 19:42:24
回答 1查看 1.3K关注 0票数 0

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

假设有3个订阅者,SubscriberASubscriberBSubscriberC。他们都想订阅一个名为OnPowerUpEvent的活动。OnPowerUpEvent可以由PowerItemAPowerItemB触发。还可以有多个PowerItemAPowerItemB实例。

基于这个场景,我不明白事件聚合器模式如何允许订阅者订阅某个特定发布者发布的事件。在我看来,订阅者一般只能订阅事件OnPowerUpEvent,并且不管发行者是谁,都可以对事件做出响应。

例如,SubscriberA可能希望订阅由任何PowerItemA实例发布的事件OnPowerUpEventSubscriberB可能希望订阅由特定PowerItemB实例发布的事件OnPowerUpEventSubscriberC可能希望订阅事件OnPowerUpEvent,而不管发行者是谁。

在这3种不同的情况下,事件聚合器模式是如何管理这一点的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-20 19:47:29

流行的事件聚合器实现不仅提供简单的发布/订阅功能,而且提供更复杂的订阅过滤基础设施,例如Prism EventAggregator允许提供谓词和处理程序:(见MSDN)

代码语言:javascript
复制
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>();

fundAddedEvent.Subscribe(FundAddedEventHandler, 
                         ThreadOption.UIThread, false,
                         fundOrder => fundOrder.CustomerId == _customerId);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12992014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档