自学内容网 自学内容网

深入理解JS中的发布订阅模式和观察者模式

发布/订阅模式(Publish/Subscribe)和观察者模式(Observer Pattern)在概念上非常相似,都是用于实现对象之间的松耦合通信。尽管它们在实现细节和使用场景上有所不同,但核心思想是相通的。

观察者模式

  • 直接通信:在观察者模式中,观察者(Observer)直接订阅主题(Subject)。当主题状态改变时,会直接通知所有订阅的观察者。
  • 紧密耦合:观察者需要直接注册到主题上,这意味着观察者和主题之间存在较紧密的耦合。
  • 实现方式:通常由主题维护一个观察者列表,当主题状态改变时,遍历这个列表,逐个调用观察者的更新方法。

简单观察者模式示例:

class Subject {
   
    constructor() {
   
        this.observers = []; // 观察者列表
    }

    // 添加观察者
    addObserver(observer) {
   
        this.observers.push(observer);
    }

    // 移除观察者
    removeObserver(observer) {
   
        const index = this.observers.indexOf(observer);
        if (index > -1) {
   
            this.observers.splice(index, 1);
        }
    }

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

原文地址:https://blog.csdn.net/jingsi1991/article/details/140615372

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!