【发布时间】:2010-11-19 00:44:59
【问题描述】:
我有一个解决方案,我将一组项目从源传递给演示者。当源更新时,我希望能够通知演示者显示新结果。
想到的是创建一个 ChangeNotification 类,将其与结果一起传递,并让该类通知演示者。现在,正如我所见,这可以通过两种方式实现,ChangeNotification 可以具有演示者订阅的事件,或者它可以具有演示者设置的委托,并且如果它不为空,则源调用。
使用事件的好处是,消费者不仅可以对通知做出反应,而且您可以将响应式扩展连接到它,缺点是您必须管理事件的订阅/取消订阅以进行正确的垃圾收集。代表很简单,但您会失去一些灵活性。
对于这种情况,最优雅的模式是什么?还有其他我没有想到的方法吗?
【问题讨论】:
标签: c# .net events design-patterns delegates