JavaScript的设计模式-观察者模式

// 观察者模式:使用一个目标对象来管理所有依赖于它的观察者(订阅者)对象(一个或多个),并且在它本身的状态改变时主动向观察者(订阅者)对象发出通知
class Subject {
    constructor() {
        this.observers = [];
        this.name = '发布者'
    }

    addObserver(observer) {
        this.observers.push(observer)
    }

    notifyAllObservers() {
        this.observers.forEach(observer => {
            observer.update()
        })
    }
}

class Observer {
    constructor (code, subject) {
        this.code = code;
        this.subject = subject;
        this.subject.addObserver(this);
    }

    update() {
        console.log(`${this.subject.name}通知订阅者${this.code}更新`);
    }
}

const subject = new Subject();
const obj1 = new Observer('1',subject)
const obj2 = new Object('2',subject)
const obj3 = new Object('3',subject)
subject.notifyAllObservers();
发布了116 篇原创文章 · 获赞 9 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/memedadexixaofeifei/article/details/103860491