javascript如何实现观察者模式_与发布订阅有何区别

admin 百科 13
观察者模式通过Subject维护Observer列表并直接通知更新,Pub/Sub则借助事件总线实现完全解耦的事件通信;二者在耦合度、通信方式、生命周期管理和适用场景上存在本质区别。

javascript如何实现观察者模式_与发布订阅有何区别-第1张图片-佛山资讯网

观察者模式的 JavaScript 实现

观察者模式(Observer Pattern)是一种行为型设计模式,核心是让一个对象(被观察者/Subject)维护一组依赖它的对象(观察者/Observer),当被观察者状态变化时,自动通知所有观察者更新。

基础实现如下:

被观察者(Subject)

class Subject {
  constructor() {
    this.observers = [];
  }

  // 添加观察者
  addObserver(observer) {
    if (typeof observer.update === 'function') {
      this.observers.push(observer);
    }
  }

  // 移除观察者
  removeObserver(observer) {
    this.observers = this.observers.filter(obs => obs !== observer);
  }

  // 通知所有观察者
  notify(data) {
    this.observers.forEach(observer => observer.update(data));
  }
}

登录后复制

观察者(Observer)

立即学习“Java免费学习笔记(深入)”;

标签: vue javascript java 前端 go typescript 路由 区别

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~