观察者模式想必搞程序开发的都听说过,今天我也来简单的总结一下本人在程序开发过程中是怎么使用观察者模式的;希望给大家带来点新的想法,如果哪位高手看到了也不要嘲笑啊;呵呵,追求技术的人,始终都是为了技术而学技术,目的只有一个,一起追求技术的最高境界。

  观察者模式是设计模式里经常被用到的一种,什么叫观察者模式,字面理解就是一个或多个对象观察某个对象,这种观察是有目的的,当被观察者发生某种事件时,能准确的反馈到外界,通知大家你发生了什么;尤其是在今天面向对象编程的不断成熟,什么都讲究抽象,将重复劳动省到最少,方法成员都以类为容器封装;这是一种好的编程规则,就好比我们所生存的大自然坏境一样,汽车与人都是独立的生存个体,大家互不干扰,我不需要知道我存在的意义,存在的意义是对别人而言。

  进入主题,上面刚才讲到了汽车与人,打个比方当我们乘坐公交车的时候,我并不认识路,我需要车到的时候通知乘客你到了哪个站,我们好下车;在我们做开发的时候经常会遇到这种情况,我要某个按钮被鼠标点击了之后弹出一个文本框出来,等等;继续汽车与人的比方,当汽车到站后通过什么方式通知大家你到某某站了呢,这就涉及到汽车这么一个实体是否具有到站事件,如果没有可能他永远都不会听,请看图一:

.NET简谈观察者“.NET技术”模式_设计模式

  图上是一个汽车和四个乘客实体图,当汽车到达某个站的时候应该告诉乘客到了哪个站了,让乘客判断一下是否是自己要下的站,请看图二:

.NET简谈观察者“.NET技术”模式_设计模式_02

  图上是汽车到了站点1时通知乘客,并将到站的信息传递给乘客让乘客判断是否下车,如果某乘客要下车可以通知驾驶员我要下车,请看图三:

  乘客判断消息是否是自己要下的站,如果是发出消息给汽车驾驶员,我们这里把驾驶员和汽车当成一体的,由汽车为统称;汽车接收到乘客的下车信息后打开车门让乘客下车;我们只要把图的信息落实到代码上就OK了,请看代码图:

.NET简谈观察者“.NET技术”模式_观察者模式_03

.NET简谈观察者“.NET技术”模式_编程规则_04