zoukankan      html  css  js  c++  java
  • 观察者模式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的订阅者。当然也有可能是订阅者自己过来拉取,看具体实现。

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

  • 相关阅读:
    tableView操作数据持久化
    9.0banb以前和9.0以后版本后JSON解析
    数据持久化存储回顾
    解决Xcode会出现的问题
    iview-cli 项目、iView admin 代理与跨域问题解决方案
    将变量做为一个对象的key,push新增进一个数组
    页面加载速度优化的建议
    vue中渲染页面,动态设置颜色
    e.currentTarget与e.target
    iview中tree的事件运用
  • 原文地址:https://www.cnblogs.com/xuwupiaomiao/p/12079403.html
Copyright © 2011-2022 走看看