观察者模式-Event实现方案(二)

2014-11-24 03:29:05 · 作者: · 浏览: 8
果需要很长的段落建议还是采用在构造函数中传入方法的新建委托对象方式。在图1的基础上实现项目的要求也很简单。可以针对不同的传感器设计不同的subject接口方式,在对应类中继承并实现接口。然后Observer需要观察哪个事件便注册相应事件即可。

结论:

设计模式是一种思想模式,其具体实现会根据语言的不同而发生微妙的变化。.Net中的委托和事件本来就是对回调的安全封装,是默认的观察者推模式的实现方案。因为.Net事件模式多数发生在界面上,当单线程访问时可以不使用Interlocked.CompareExchange方法,而是直接判断事件是否为空再调用事件。

关于事件与委托的异同,要涉及到CLR的很多细节部分,委托与反射配合使用也能给我们很多意想不到的惊喜,有时间我们另行讨论。


转载请注明出处,本文章的代码下载页:观察者模式事件实现方案