observer pattern

原创 2013年12月01日 21:41:35

defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and updated automatically.








subject内部有个observer的集合,subject内部状态发生变化,就调用observer的update接口,通知所有的observer。




observer内部有个subject的成员变量,用以注册和取消注册

优缺点:

观察者模式的效果有以下几个优点:

    1观察者模式在被观察者和观察者之间建立一个抽象的耦合。被观察者角色所知道的只是一个具体现察者聚集,每一个具体现察者都符合一个抽象观察者的接口。被观察者并不认识任何一个具体观察者,它只知道它们都有一个共同的接口。由于被观察者和观察者没有紧密地耦合在一起,因此它们可以属于不同的抽象化层次。

    2观察者模式支持广播通信。被观察者会向所有的登记过的观察者发出通知。

观察者模式有下面的一些缺点:

    1如果一个被观察者对象有很多直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。

    2如果在被观察者之间有循环依赖的话,被观察者会触发它们之间进行循环调用,导致系统崩溃。在使用观察考模式时要特别注意这一点。

    3如果对观察者的通知是通过另外的线程进行异步投递的话,系统必须保证投递是以自恰的方式进行的。

    4虽然观察者模式可以随时使观察者知道所观察的对象发生了变化,但是观察者模式没有相应的机制使观察者知道所观察的对象是怎么发生变化的。



设计模式 - 观察者模式(Observer Pattern) 详解

观察者模式(Observer Pattern) 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26583157 版权...
  • u012515223
  • u012515223
  • 2014年05月22日 14:37
  • 2892

Java设计模式之观察者模式(Observer Pattern)

Observer Pattern 是一种常用的设计模式,它是一种事件监听模型,
  • tracker_w
  • tracker_w
  • 2014年06月18日 00:53
  • 2468

我所理解的设计模式(C++实现)——观察者模式(Observer Pattern)

概述:         最近中国股市起起伏伏,当然了起伏就用商机,小明发现商机后果断想入市,买入了中国证券,他想在电脑客户端上,网页上,手机上,iPad上都可以查看到该证券的实时行情,这种情况下我们...
  • LCL_data
  • LCL_data
  • 2013年06月30日 18:19
  • 28967

Observer HeadFirst design pattern

  • 2010年11月01日 20:30
  • 3KB
  • 下载

设计模式总结之Observer Pattern(观察者模式)

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。...
  • cooldragon
  • cooldragon
  • 2016年08月11日 00:53
  • 837

观察者模式(Observer Pattern)

观察者模式定义: Define a one-to-many dependency between objects so that when one object changes state , al...
  • Alex_zhuang
  • Alex_zhuang
  • 2012年01月12日 15:57
  • 403

设计模式笔记2:观察者模式(Observer Pattern)

一、观察者模式内容 观察者模式在对象之间定义了一对多的依赖,这样一来,依赖它的对象都会受到通知并自动更新。 观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model...
  • yangzl2008
  • yangzl2008
  • 2012年06月07日 19:53
  • 930

设计模式(行为型)之观察者模式(Observer Pattern)

观察者模式用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应...
  • yanbober
  • yanbober
  • 2015年05月04日 20:46
  • 4774

Java设计模式:观察者模式(Observer Pattern)续

本篇要说明的是Java内置的观察者模式; 涉及 import java.util.Observable; import java.util.Observer;...
  • u010921682
  • u010921682
  • 2017年08月01日 11:06
  • 114

"围观"设计模式(19)--行为型之观察者模式(Observer Pattern)

观察者模式是软件设计模式的一种。在此种模式中,一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实时事件处理系...
  • wangyang1354
  • wangyang1354
  • 2016年06月08日 20:08
  • 3950
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:observer pattern
举报原因:
原因补充:

(最多只允许输入30个字)