码迷,mamicode.com
首页 > 其他好文 > 详细

观察者模式Vs发布订阅模式

时间:2019-12-22 12:33:25      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:现在   jpg   发布者   lis   hang   idt   调用   订阅模式   消息   

1)观察者模式

观察者模式通俗的讲就是我们平事件调用(click/change等等)

技术图片

大家先看这个图片。我们被观察者Subject(监听某个事件)发生改变时,观察者Observer监听到没改变做出调整。
最大的特点是实现了松耦合(如何理解松耦合呢?个人认为就是当Subject 发生给变时,我们有一套对应的Observer集合,当Subject中的模块1 给变时对应的Observer1做出反应,当Subject中的模块2 给变时对应的Observer2做出反应...,不必全部都是一一对应,来实现松耦合)。

2)发布订阅模式

发布订阅模式这个问题就大了?
怎么回事呢 ,因为它涉及到了第三者的插足!!!

我还是先介绍一下他们是谁吧

Subscriber 订阅者

Publisher 发布者
Broker 插足者(第三者)
看图看图

技术图片

对的小三就是这么堂而皇之的出现在中间了。不他出现的恰到好处给无聊的生活平添了很多的乐趣。

为啥呢??     言归正传,

当Pub有消息要告诉Sub时:

发布者只需告诉Broker,我要发的消息,topicA的A消息;

订阅者只需告诉Broker,我要订阅topicA的消息是A;

于是,当Broker收到发布者发过来消息,并且topicA是A时,就会把消息推送给订阅了topicA是A的订阅者。当然也有可能是订阅者自己过来拉取,看具体实现。

也就是说,发布订阅模式里,发布者和订阅者,不是松耦合,而是完全解耦的

观察者模式Vs发布订阅模式

标签:现在   jpg   发布者   lis   hang   idt   调用   订阅模式   消息   

原文地址:https://www.cnblogs.com/xuwupiaomiao/p/12079403.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!