【发布时间】:2012-10-20 19:42:24
【问题描述】:
在事件聚合器模式中,发布者将事件发布到聚合器,订阅者通过聚合器订阅特定事件。
假设有 3 个订阅者,SubscriberA、SubscriberB 和 SubscriberC。他们都想订阅一个名为OnPowerUpEvent 的事件。 OnPowerUpEvent 可以被PowerItemA 或PowerItemB 触发。 PowerItemA 和 PowerItemB 也可以有多个实例。
基于这种情况,我不明白事件聚合器模式如何能够允许订阅者订阅特定发布者发布的事件。在我看来,订阅者一般只能订阅事件OnPowerUpEvent,无论发布者是谁,都可以响应事件。
例如,SubscriberA 可能想要订阅由任何 PowerItemA 实例发布的事件OnPowerUpEvent。 SubscriberB 可能想要订阅由PowerItemB 的特定实例 发布的事件OnPowerUpEvent。而SubscriberC 通常可能想要订阅OnPowerUpEvent 事件,无论发布者是谁。
在这 3 种不同的情况下,事件聚合器模式如何管理?
【问题讨论】:
标签: events design-patterns event-handling eventaggregator