文档地址:《设计模式之禅》​​​​​​​

切入故事: 韩非子身边的卧底是谁派来的

定义: Define a one-to-many dependency between objects so that when one object changes state,all its dependents are notified and updated automatically.(定义对象间一种一对多的依赖关系, 使得每当一个对象改变状态, 则所有依赖于它的对象都会得到通知并被自动更新。 )

通用类图:

● Subject被观察者

定义被观察者必须实现的职责, 它必须能够动态地增加、 取消观察者。 它一般是抽象类或者是实现类, 仅仅完成作为被观察者必须实现的职责: 管理观察者并通知观察者。

● Observer观察者

观察者接收到消息后, 即进行update(更新方法) 操作, 对接收到的信息进行处理。

● ConcreteSubject具体的被观察者

定义被观察者自己的业务逻辑, 同时定义对哪些事件进行通知。

● ConcreteObserver具体的观察者

每个观察在接收到消息后的处理反应是不同, 各个观察者有自己的处理逻辑。

优点:

● 观察者和被观察者之间是抽象耦合

● 建立一套触发机制

缺点:

开发效率和运行效率问题

使用场景:

● 关联行为场景。 需要注意的是, 关联行为是可拆分的, 而不是“组合”关系。

● 事件多级触发场景。

● 跨系统的消息交换场景, 如消息队列的处理机制。

扩展:

EJB中的 MessageDriven Bean(一般简称为MDB) , 消息驱动Bean 消息的发布者(Provider) 发布一个消息, 也就是一个消息驱动Bean, 通过EJB容器(一般是Message Queue消息队列) 通知订阅者做出回应

观察者模式( Observer Pattern)相关推荐

  1. 设计模式 - 观察者模式(Observer Pattern) Java内置 用法

    观察者模式(Observer Pattern) Java内置 用法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26601659 ...

  2. 设计模式-观察者模式(Observer Pattern)

    设计模式-观察者模式 观察者模式是使用频率最高的设计模式之一,它用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应.在观察者模式中,发生改变的对象称为观 ...

  3. 设计模式 -行为型模式_ 观察者模式Observer Pattern 之 JDK内置的实现

    文章目录 概念 Code [主题] [观察者s] 观察者一 观察者二 [测试] 源码分析 java.util.Observable 目标类 java.util.Observer 观察者接口 notif ...

  4. 设计模式学习--观察者模式(Observer Pattern)

    设计模式学习--观察者模式(Oberser Pattern) 2013年5月18日 天气:热!  下午15:28  设计模式学习中 学习者:小巫 什么是观察者模式? 定义了对象之间的一对多依赖,这样一 ...

  5. 极速理解设计模式系列:2.观察者模式(Observer Pattern)

    4个角色:被观察者(Subject/目标对象接口),具体被观察者(ConcreteSubject/具体目标对象),观察者(Observer),具体观察者(ConcreteObserver)       ...

  6. 锈才学设计模式之 —— 观察者模式(Observer Pattern)

    锈才学设计模式之  -- 观察者模式 观察者模式:定义对象的一对多的关系,这样当主题对象改变状态时,其它的观察者对象都会收到通知,自动更新. 说明: 在真实世界中存在很多类似的模型,比如:订报纸,找中 ...

  7. Java设计模式—观察者模式(Observer pattern)

    故事: 小雪是一个非常漂亮的女孩,漂亮的女孩总是有很多的追求者,而且追求者的队伍在不断的变动,随时有人进入这个队伍,也有人退出.男孩们追求女孩时总是表现出120%的关心,当小雪私自游玩时总是不断收到追 ...

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

    PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbob ...

  9. 观察者模式(Observer Pattern)(二):HeadFirst中的气象站的实现

    1 观察者模式的原理,首先由一个主题,当主题发送变化的时候,通知该主题的订阅者 按照上面的分析我们来进行设计 1.抽象主题Subject public interface Subject {publi ...

  10. 观察者模式-Observer Pattern

    1.主要优点 观察者模式的主要优点如下: (1) 观察者模式可以实现表示层和数据逻辑层的分离,定义了稳定的消息更新传递机制,并抽象了更新接口,使得可以有各种各样不同的表示层充当具体观察者角色. (2) ...

最新文章

  1. 【LoadRunner】OSGI性能测试实例
  2. AJAX+JQUERRY实现分页
  3. 如何覆盖 SAP Spartacus 默认的 css style
  4. python、中循环功能可通过什么命令实现_python定时执行指定函数的方法 Python如何定时循环执行命令?...
  5. 前端开发怎么用php,做web前端开发怎么样?
  6. 普林斯顿校长2018演讲:读书无用是最大的谎言
  7. CV《神经风格转换》
  8. Openwrt 软件安装源
  9. 小米笔记本12.5java_小米12.5笔记本系统
  10. cesium之深圳区域行政图
  11. 把华为交换机设置成(NTP)时钟源服务器
  12. package.json bin的作用
  13. 网站打开速度优化:如何提高网页加载速度,提升网页打开速度
  14. vsftpd.conf 配置详解
  15. vitrualbox虚拟机64位安装报错解决
  16. 用python发送叮叮消息
  17. java getday_javascript中Date对象的getDay方法使用指南
  18. 造轮子之后台管理模板
  19. 表单重复提交(前端未做单击防重复点击策略)
  20. 误删除与误格式化的挽回(图)

热门文章

  1. SATA 数据、电源 接口定义
  2. 4K Video Downloader for Mac 中文版 网页视频下载利器
  3. 人工智能对社会的发展
  4. 用C++实现五子棋人机对战小游戏
  5. 字体的基础知识:英文字体区分练习
  6. 数据仓库项目管理面试题整理
  7. Springboot毕设项目药库药品智能入库出库及流转管理系统e46hijava+VUE+Mybatis+Maven+Mysql+sprnig)
  8. xp蓝屏c0000218解决方案
  9. soc的核间通信机制-->mailbox
  10. python 循环的用法详解和完全攻略