Reactive Extensions vs Event Aggregator

时间:2013-04-08 09:56:29

标签: .net system.reactive eventaggregator

我是Reactive Extensions的新手。我理解Rx会观察到(在运行时)对底层对象的任何更改,并在更改为订阅者时通知。

考虑事件的Rx,它检查任何事件并将这些更改发布到订阅。同样,我们有事件聚合器,它将事件发布给订阅者。两人都在做同样的工作。两者都有相同的目的。我们两者之间是否有任何差异。

感谢您的回复

1 个答案:

答案 0 :(得分:1)

咆哮

根据我的经验,EventAggregators是反转责任方向的单例,因此UI可以相互发送消息并篡改域抽象。我个人认为EventAggregators(特别是w.r.t Prism)是错误问题的正确答案。

通常我认为在使用EventAggregator的地方,应该用对相应域实体或服务的调用替换它们,然后可以将操作结果公开为事件(Rx或其他)。现在使用IoC相关方可以向其注入相关的实现,然后他们可以订阅事件(再次Rx或其他)。

- Rant over -

为了更好地回答你的实际问题,我认为如果你使用EventAggregator,你的问题可能实际上是“我应该将通知暴露为.net事件或Rx Observable序列(IObservable)”

我在哪种情况下,我看不出很多区别。如果不需要调度/并发控制,事件/通知的组合或序列的转换(如限制或缓冲),那么您当前对事件的使用将是正常的。