专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

发布订阅模式和观察者模式比较

发布订阅模式

78_1.png

发布订阅模式跟房屋租赁模式一样。业主把房子委托给中介,租客去中介租房子。其中,业主与租客没有半毛钱关系。
发布订阅模式是,订阅者(Subscriber)把自己想订阅的事件注册(Subscribe)到调度中心(Topic),当发布者(Publisher)发布该事件(Publish topic)到调度中心,也就是该事件触发时,由调度中心统一调度(Fire Event)订阅者注册到调度中心的处理代码。

发布订阅模式 主要分成两个部分 on emit
on 订阅 就是把一些函数维护到一个数组中
emit 发布 就是让数组中的方法依次执行

let fs = require("fs"); // file system
let school = {};
// 类似 房屋租赁  业主把房子放到中介  租户去中介租房子

let event = {
  // 订阅和发布没有明显的关联(依赖关系),靠中介数组arr来实现
  arr: [],
  on(fn) {
    this.arr.push(fn);
  },
  emit() {
    this.arr.forEach((fn) => fn());
  },
};

event.on(function () {
  console.log("读取了一个");
});

event.on(function () {
    if(Object.keys(school).length===2){
        console.log(school);
    }
});

fs.readFile("./name.txt", "utf8", function (err, data) {
  school.name = data;
  event.emit();
});

fs.readFile("./age.txt", "utf8", function (err, data) {
  school.age = data;
  event.emit();
});

观察者模式

观察者模式:观察者(Observer)直接订阅(Subscribe)主题(Subject),而当主题被激活的时候,会触发(Fire Event)观察者里的事件。

文章永久链接:https://tech.souyunku.com/19675

未经允许不得转载:搜云库技术团队 » 发布订阅模式和观察者模式比较

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们