观察者设计模式和C#事件委托模型

123*_*per 5 c# design-patterns

似乎观察者设计模式是通过其事件委托模型在C#中构建的.我有什么理由可以用经典方式实现它吗?

关于
123Developer

Ree*_*sey 6

通常,语言中内置的事件模型对于观察者模式就足够了.实际上没有理由以不同的方式实现它,因为您只是在重新创建事件.

话虽如此,人们很少会改变"标准"事件模式.例如,我见过人们想要异步引发事件的情况.我通常不建议这样做(我个人认为这可以在订阅者方面更好地处理),但它仍然可以通过标准C#事件处理,但是稍微提升事件(使用GetInvocationList并异步调用委托) .

  • 我真的很喜欢C#事件系统.它的一个缺点,恕我直言,因为你没有明确地向用户显示附加/分离api方法调用,很多人不知道在完成对象时分离/删除事件处理程序.从而使物体远离垃圾收集器. (2认同)