WEB开发网
开发学院网页设计JavaScript 观察者模式—使用JavaScript实现 阅读

观察者模式—使用JavaScript实现

 2010-09-14 13:23:45 来源:WEB开发网   
核心提示: 图1 观察者模式类图l 参与者:uSubject(抽象主题)Ø能够知道它自己的观察者,若干观察者对象可能监视一个主题对象;Ø提供一个接口,观察者模式—使用JavaScript实现(3),用来附加和取消观察者对象;uObserver(抽象观察者)Ø它

图1 观察者模式类图

l     参与者:

u    Subject(抽象主题)

Ø  能够知道它自己的观察者,若干观察者对象可能监视一个主题对象;

Ø  提供一个接口,用来附加和取消观察者对象;

u    Observer(抽象观察者)

Ø  它为对象定义了一个(自我)更新的接口,并且当主题对象发生改变的时候能够被通知;

u    ConcreteSubject(具体主题)

Ø  存储具体观察者感兴趣的状态;

Ø  当它的状态改变的时候,通知它所有的观察者对象;

u    ConcreteObserver(具体观察者)

Ø  持有一个具体主题的引用;

Ø  存储和主题对象一致的状态,并且该能够保留该状态;

Ø  实现抽象观察者的Update接口,以便能够同主题对象的状态保持一致;

l     工作方式:

u   当某个具体主题状态发生改变的时候,通知它的所有观察者对象,以便保证这些观察者对象的状态同它的状态保持一致;

u   当被告知具体主题对象发生改变,一个具体观察者对象可能会去查询主题对象,以便获得一个消息;该观察者使用这个消息来使它的状态同主题对象的状态保持一致;

观察者模式序列图

下面这张交互图展示了一个主题对象和两个观察者对象之间的协作:

观察者模式—使用JavaScript实现

图2 观察者模式序列图

观察者对象初始化变化请求,它不会立即更新,直到通过主题对象的Notify方法来获得一个变化的通知。主题的Notify方法并非总是被主题对象调用,它也能够被观察者对象调用,或者完全被其他不同类型的对象调用。

上一页  1 2 3 4 5 6  下一页

Tags:观察者 模式 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接