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

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的订阅者。当然也有可能是订阅者自己过来拉取,看具体实现。

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

猜你喜欢

转载自www.cnblogs.com/xuwupiaomiao/p/12079403.html
今日推荐