1、概述:
观察者模式又叫发布-订阅模式,也是一种比较常用的设计模式,比如说,为了完成某件事,需要几个对象共同完成,当一个对象已经完成了,就需要通知另一个对象,开始要完成的动作,这种模式最常用的就是事件委托方式。
2、定义:
定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。
3、UML类图:

4、示例:
主题对象类:
class boss
{
delegate void EventHandle();//定义一个委托
public event EventHandle Update;//定义一个事件
public void Notify()//事件激发函数
{
Update();
}
}
观察者:
class Observer1
{
public void Function1()
{
.....
}
}
class Observer2
{
public void Function2()
{
.....
}
}
客户端:
Boss boss =new Boss();
Observer1 observer1 =new Observer1();
Observer2 observer2 =new observer2();
boss.Update +=new EventHandle(observer1.Function1);
boss.Update +=new EventHandle(observer2.Function2);
boss.Notify();
5、委托事件:
委托是一种引用方法的类型,一旦为委托分配了方法,委托将于该方法具有完全相同的行为,委托可以看做是对函数的抽象,是函数的“类”,委托的示例就代表着一个具体的函数,一个委托可以搭载多个函数,所有方法依次被唤起,不过同一个委托搭载的方法必须具有相同的参数列表和返回类型。
浙公网安备 33010602011771号