2.41.2-发布订阅和观察者模式 小灰灰 2023-07-22 09:13 9阅读 0赞 ### 发布订阅 ### let fs = require('fs'); // 发布订阅 发布和订阅没关系 中间通过数组进行关联 function Events() { this.callbacks = []; //接收很多函数 this.results = []; } // 订阅 Events.prototype.on = function(callback) { //传一个函数 this.callbacks.push(callback); } // 发布 Events.prototype.emit = function(data) { this.results.push(data); //发布后,许多之前的函数依次执行 this.callbacks.forEach(cb => cb(this.results)); // cb是callbacks中的每一个参数,每一个回调函数,回调函数又将this.results作为参数 // this.callbacks.forEach(function(callback) { // callback(this.results); // }); } let e = new Events(); //on传了一个函数作为参数 e.on(function(res) { if (res.length === 2) { console.log(res); } }); // e.on(function(res) { // }); fs.readFile('2020.01.03异步/callback(1)/a.txt', 'utf8', function(err, data) { e.emit(data); }); fs.readFile('2020.01.03异步/callback(1)/b.txt', 'utf8', function(err, data) { e.emit(data); }); ### 观察者模式 ### // 被观察者 class Subject { constructor(name) { this.name = name; this.observers = []; // 存放所有观察者 this.mood = '心情很美丽'; } // 接受观察者方法 attach(observer) { this.observers.push(observer); } setMood(newMood) { this.mood = newMood; this.observers.forEach(o=>o.update(newMood)); } } class Observer { constructor(name) { this.name = name; } update(mood) { console.log(this.name); console.log(mood); } } let sub = new Subject('girl'); let o1 = new Observer('boy'); let o2 = new Observer('father'); sub.attach(o1); sub.attach(o2); sub.setMood('心情很糟糕');
相关 java设计模式--观察者(发布订阅) *1、概述: ** 观察者模式又称“发布订阅模式”定义一种一对多的依赖关系,让多个观察者对象同时监视着被观察者的状态,当被观察者的状态发送变... 旧城等待,/ 2024年04月17日 20:15/ 0 赞/ 117 阅读
相关 JavaScript 简单实现观察者模式和发布-订阅模式 JavaScript 简单实现观察者模式和发布-订阅模式 1. 观察者模式 1.1 什么是观察者模式 1.2 代码实现 2. 发布- 秒速五厘米/ 2023年10月14日 08:41/ 0 赞/ 68 阅读
相关 观察者模式 vs 发布订阅模式 目录 场景 观察者模式 发布订阅模式 总结 -------------------- 场景 有一回面试,面试官问: 末蓝、/ 2023年10月06日 19:03/ 0 赞/ 62 阅读
相关 订阅发布和观察者模式 发布订阅模式 > 把多个方法暂存起来,最后一次触发执行 作用: 解偶 使用场景: 如,多个类或者函数内,可以分散订阅某个操作,最后统一发布。分散的好处就是不 ╰+攻爆jí腚メ/ 2022年08月28日 14:47/ 0 赞/ 255 阅读
相关 观察者模式(发布-订阅者模式) 观察者模式定义了一种依赖关系,解决了主体对象和观察者之间功能的耦合,主要应用于大型项目的模块化开发中,解决团队开发中模块之间的通信问题,利用观察者模式还可以实现自定义事件。 素颜马尾好姑娘i/ 2022年05月22日 06:00/ 0 赞/ 259 阅读
相关 javascript 观察者模式 发布订阅模式 观察者模式 观察者模式,每一个观察者对象有两个方法 添加监听`subscribe` 发布事件`publish` 观察者有个`list`存放所有的已经添加监 本是古典 何须时尚/ 2022年04月24日 10:14/ 0 赞/ 254 阅读
相关 JavaScript中观察者和发布订阅模式 可以参考文章: [https://juejin.im/post/5a14e9edf265da4312808d86][https_juejin.im_post_5a14e9e 超、凢脫俗/ 2022年01月27日 07:07/ 0 赞/ 262 阅读
相关 学习观察者模式与发布/订阅模式 > 最近学习了观察者模式和发布/订阅模式,但是一直有种不得要领的感觉,今天重新复习了一遍又有了新的思考,记录一下学习收获。 观察者模式 概念引用原文的话如下: > T 港控/mmm°/ 2022年01月20日 03:55/ 0 赞/ 321 阅读
相关 发布订阅模式(观察者模式) 设计模式的目的就是使类成为可复用的组件。 在观察者模式中观察者接口只注重被观察者,而被观察者接口只注重观察者,具体是观察者接口实现类中的哪一个并不在意,而被观察者也是如此。这 清疚/ 2021年12月15日 00:27/ 0 赞/ 339 阅读
还没有评论,来说两句吧...