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、委托事件:

  委托是一种引用方法的类型,一旦为委托分配了方法,委托将于该方法具有完全相同的行为,委托可以看做是对函数的抽象,是函数的“类”,委托的示例就代表着一个具体的函数,一个委托可以搭载多个函数,所有方法依次被唤起,不过同一个委托搭载的方法必须具有相同的参数列表和返回类型。

posted on 2013-07-19 09:05  Kelly_HanShuai  阅读(96)  评论(0)    收藏  举报