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的订阅者。当然也有可能是订阅者自己过来拉取,看具体实现。
也就是说,发布订阅模式里,发布者和订阅者,不是松耦合,而是完全解耦的。
原文地址:https://www.cnblogs.com/xuwupiaomiao/p/12079403.html
时间: 2024-10-29 19:08:09