WPF: Microsoft.Practices.Prism.Events.IEventAggregator vs CL



WPF: Microsoft.Practices.Prism.Events.IEventAggregator vs CLR event

我为什么要使用棱镜的事件? 在旧的CLR事件/委托上?

谢谢

https://www.codeproject.com/Articles/355473/Prism-EventAggregator-Sample

为什么我应该使用棱镜的事件? 在旧的 CLR 事件/委托上?

使用普通 CLR 事件将导致事件的发布者和订阅者之间的紧密耦合。这往往会使应用程序更难维护。如果发布者的寿命比订阅者长,而您忘记或不知道何时取消订阅事件,则还可能导致内存泄漏。

通过在发布者和订阅者之间引入事件聚合器,可以消除这种紧密耦合。订阅服务器观察事件聚合器而不是发布者,发布者只知道事件聚合器,而不了解订阅者。

有关详细信息,请参阅此博客文章。

简短回答:因为事件的发送方和接收方不需要相互了解,只需要知道事件的类型和事件聚合器即可。

长答案:请参阅评论中的文章,以及谷歌和/或书籍......

最新更新