// 观察者模式:使用一个目标对象来管理所有依赖于它的观察者(订阅者)对象(一个或多个),并且在它本身的状态改变时主动向观察者(订阅者)对象发出通知
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();
JavaScript的设计模式-观察者模式
猜你喜欢
转载自blog.csdn.net/memedadexixaofeifei/article/details/103860491
今日推荐
周排行