观察者模式
创始人
2024-11-30 07:34:47

发布订阅模式(Publish-Subscribe Pattern),也称为观察者模式,是一种常用的设计模式,用于对象之间的消息传递。在这个模式中,订阅者(Observer)注册到发布者(Subject),当发布者状态发生变化时,通知所有订阅者。

下面是一个 JavaScript 实现的发布订阅模式:

class PubSub {   constructor() {     this.subscribers = {};   }    // 订阅事件   subscribe(event, callback) {     if (!this.subscribers[event]) {       this.subscribers[event] = [];     }     this.subscribers[event].push(callback);   }    // 取消订阅   unsubscribe(event, callback) {     if (!this.subscribers[event]) return;      this.subscribers[event] = this.subscribers[event].filter(subscriber => subscriber !== callback);   }    // 发布事件   publish(event, data) {     if (!this.subscribers[event]) return;      this.subscribers[event].forEach(callback => callback(data));   } }  // 使用示例 const pubSub = new PubSub();  function subscriber1(data) {   console.log(`Subscriber 1 received data: ${data}`); }  function subscriber2(data) {   console.log(`Subscriber 2 received data: ${data}`); }  // 订阅事件 pubSub.subscribe('event1', subscriber1); pubSub.subscribe('event1', subscriber2);  // 发布事件 pubSub.publish('event1', 'Hello World!'); // 输出: // Subscriber 1 received data: Hello World! // Subscriber 2 received data: Hello World!  // 取消订阅 pubSub.unsubscribe('event1', subscriber2);  // 发布事件 pubSub.publish('event1', 'Hello again!'); // 输出: // Subscriber 1 received data: Hello again!  

相关内容

热门资讯

四部门印发行动方案,促进人工智... 近日,国家能源局会同国家发展改革委、工业和信息化部、国家数据局印发《关于促进人工智能与能源双向赋能的...
瞄准8时13分!一起看发射场准... 我国将于5月11日8时13分发射天舟十号货运飞船。目前,长征七号遥十一运载火箭已完成推进剂加注。 距...
天舟十号货运飞船点火发射 今天上午,搭载天舟十号货运飞船的长征七号遥十一运载火箭,在我国文昌航天发射场点火发射。
原创 微... 前段时间 iOS 微信发布了 8.0.73 正式版,安卓微信发布了 8.0.72 测试版,这次的更新...
任正非罕见出镜:华为芯片基础技... 感谢IT之家网友 的线索投递! 5 月 10 日消息,在 5 月 8 日播出的《新闻联播》节目中,...