设计模式的学习(二):观察者模式

观察者模式:

定义:

  观察者模式定义了对象之间的一对多以来,这样一来,当一个对象改变状态时,它的所有依赖着都会收到通知并自动更新。

模式说明:

    模式具有高内聚 低耦合的特点

    主题对象管理着某些数据,而主题内的数据发生改变,就会通知观察者,观察者已经订阅(注册)主题以便数据在更新时能够收到更新,主题加观察者的模式构成了观察者模式

请求取消订阅,当成功取消后,主题数据改变将不会通知取消者

  主题是具有状态的对象,观察者依赖主题告诉他们状态发生改变了,即产生了一个主题对多个观察者的关系,一个主题控制一份数据,而观察者成为主题的依赖者

 

实现观察模式的方法不止一种但是以包含Subject(主题)与Observer(观察者)接口的类设计方法最常见

  主题接口有注册,撤销观察者方法以及更新所有当前观察者的方法

  观察者接口有更新的方法,当主题状态更新时此方法会被调用

  两个对象松耦合,他们可以交互,但不清楚彼此的细节。而观察者模式下的主题与观察者即为松耦合,主题只知道观察者是一个实现了某个接口(如Observer接口)的类,而不需要其他细节,同样有新的观察者出现只需注册为观察者而不需要修改主题类的代码。改变主题或观察者中的一方不会影响另一方,因为二者非紧耦合,只要两者间的接口仍被遵循,我们就可以自由的改变他们。松耦合的设计之所以能让我们建立有弹性的OO系统,能够应对变化,是因为对象间的互相依赖降到了最低。

 

设计原则:

为了交互对象之间的松耦合设计而努力

 

其他:

监听器是观察者模式的一种实现,监听器模式也就是观察者模式的一种。

监听器模式是对某种共有操作的监控。当此操作执行时对此操作作相应处理。

 

posted @ 2016-11-06 12:40  早安宇宙  阅读(112)  评论(0编辑  收藏  举报