zoukankan      html  css  js  c++  java
  • 观察者模式与发布订阅者模式的区别

     前言:观察者模式、发布订阅者模式很容易产生混淆。

    观察者模式(Observer)

      是发布者和观察者直接交流,一对多。多个观察者依赖一个发布者的数据,从而不会让更多对象控制同一份数据,这样能够得到更干净的设计。代表:MVC

      比如天气情况变更通知预定,发布者会在天气变更的时候向观察者名单发送消息;观察者小明告诉发布者需要知道天气变更消息,那么发布者就会将小明加入观察者名单中,然后发布者会在天气发生变更时将消息主动直接传递给观察者名单的所有人;如果小明不想再知道这些消息,则发布者就会将小明从观察者名单中剔除。

     

    发布订阅模式(Subscribe/Publish)

      订阅者和发布者不是直接交流,而是通告调度中心(中介),多对多。代表:activeMq

      比如天气情况变更通知预定,发布者会在天气变更的时候向调度中心发送消息,然后由调度中心告诉所有订阅了该天气变更的订阅者;订阅者也只需告诉调度中心自己是否需要订阅。

    总结

       两者的最大的区别在于调度方式的不同。观察者模式中观察者和发布者之间存在依赖,而发布订阅模式没有。

  • 相关阅读:
    MySQL查看表占用空间大小(转)
    Nginx搭建flv视频点播服务器
    Nginx SPDY Pagespeed模块编译——加速网站载入
    RAD,V模型
    java运算符的优先级
    union和union all的区别
    java数据的5种存储位置(转)
    java对象的初始化过程和创建对象的几种方式
    java异常的原理以及应用
    缓冲与缓存的概念(转)
  • 原文地址:https://www.cnblogs.com/yuxiaole/p/9220360.html
Copyright © 2011-2022 走看看