`
geeksun
  • 浏览: 953012 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

观察者模式和发布/订阅模式的区别

 
阅读更多

        在事件总线(EventBus)的架构设计中,用到了发布/订阅模式,但发现和观察者模式挺接近,有时容易发生混淆,现试图分清一下他们的关系。

 

        观察者模式的角色为观察者(observer)和主题(subject)对象,observer需要观察subject时,需先到subject里面进行注册(subject对象持有observer对象的集合句柄),然后,当subject对象的内部状态发生变化时,把这个变化通知所有的观察者。 

 

        发布、订阅模式的角色为发布者(publisher)和订阅者(subscriber),pub和sub之间没有直接的耦合关系,pub发布一个消息事件(event),sub订阅感兴趣的消息事件,sub也可以取消订阅。

 

        可初步得出结论:

        观察者模式中的观察者是和主题对象紧耦合的。

        发布\订阅模式中的发布者和订阅者是松耦合的,发布者和订阅者是通过事件发生联系的。

 

 

分享到:
评论

相关推荐

    利用观察者模式(发布/订阅模式)制作一个“代替”广播的通知类

    利用观察者模式(发布/订阅模式)制作一个“代替”广播的通知类

    设计模式 观察者 发布/订阅 Observer

    Observer (观察者模式) 又叫做发布/订阅(Publish/Subscribe)模式。 当一个对象的改变同时会影响其他对象的行为的时候,可以使用此设计模式。 l 主题对象 :一个需要被关注的主题对象,这个主题对象改变会影响...

    JavaScript设计模式之观察者模式与发布订阅模式详解

    学习了一段时间设计模式,当学到观察者模式和发布订阅模式的时候遇到了很大的问题,这两个模式有点类似,有点傻傻分不清楚,博客起因如此,开始对观察者和发布订阅开始了Google之旅。对整个学习过程做一个简单的记录...

    Java 观察者模式的浅析

    Java 观察者模式的浅析 简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者...

    JAVA 发布-订阅(观察者)模式

    改demo主要叙述java版本发布预订阅模式的主导思想(观察者模式)

    设计模式系列之观察者模式

    观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件...

    C#不同窗体间的数据传递发布订阅模式(观察者模式)源码范例

    该资源是C#不同窗体间的数据传递发布订阅模式(观察者模式)源码范例,资源很好,思路清晰,值得大家借鉴

    JavaScript实现与使用发布/订阅模式详解

    发布/订阅模式(即观察者模式): 设计该模式背后的主要动力是促进形成松散耦合。在这种模式中,并不是一个对象调用另一个对象的方法,而是一个订阅者对象订阅发布者对象的特定活动,并在发布者对象的状态发生改变后...

    JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例

    主要介绍了JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法,结合实例形式分析了JavaScript观察者模式概念、原理、使用方法及相关操作注意事项,需要的朋友可以参考下

    JavaScript中发布/订阅模式的简单实例

    上次研究观察者模式,很多文章说它也叫Subscribe/Publish(发布/订阅模式)。可在《Javascript设计模式》一书中,这两种模式还是有些区别的。书中原话如下: 1.Observer模式要求希望接收到主题通知者的观察者必须订阅...

    观察者模式(发布-订阅)(转载含实例)

    NULL 博文链接:https://wb284551926.iteye.com/blog/1923535

    JavaScript设计模式之观察者模式(发布者-订阅者模式)

    主要介绍了JavaScript设计模式之观察者模式(发布者-订阅者模式),本文详细的讲解了JavaScript中的观察者模式,需要的朋友可以参考下

    观察者模式

    观察者设计模式观察者模式(有时又被称为发布-订阅<Publish/Subscribe>模式、模型-视图<Model/View>模式、源-收听者<Source/Listener>模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有...

    C++设计模式之观察者模式(Observer)

    观察者模式通常的叫法叫做订阅-发布模式,类似于报刊杂志的订阅,观察者和被观察者就是读者和邮局的关系,读者先要在邮局订阅想要的报刊,当报刊发行时,邮局会将报刊邮寄到读者家里。观察者(Observer)和被观察者...

    Android设计模式--观察者模式DEMO

    Android设计模式--观察者模式DEMO 观察者模式是一个使用频率非常高的模式,他最常用的地方是GUI系统和订阅-发布系统。 该模式的最重要的作用就是解耦,使观察者和被观察者之间依赖尽可能小,甚至好无依赖。

    设计模式实现——观察者模式

    对应的博客链接:http://blog.csdn.net/t1234xy4/article/details/52432559#

    JavaScript观察者模式(publish/subscribe)原理与实现方法

    观察者模式又叫做发布订阅模式,它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生改变时就会通知所有观察着对象。它是由两类对象组成,主题和观察者,主题负责发布事件,...

    委托实现观察者模式

    用C#委托实现的观察者模式的例子,理解委托订阅回调等等

    设计模式之观察者模式1

    设计模式之观察者模式介绍观察者模式又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个

Global site tag (gtag.js) - Google Analytics