赞
踩
观察者模式用于在对象之间建立 一对多 的依赖关系,当一个对象状态发生变化时,它的所有依赖者(观察者)都会收到通知并自动更新。在js中,观察者模式通常由两个角色组成:主体(Subject)和观察者(Observer)。主体维护一个观察者列表,并提供添加、删除和通知观察者的方法。观察者则实现一个更新方法,用于接收主体的通知并执行相应的操作。
通过使用观察者模式,可以 实现松耦合 的代码架构,使得主体和观察者彼此独立,易于扩展和维护。在js中,观察者模式广泛应用于事件处理、异步编程和React等框架中。
观察者模式通常用于对象间的一对多依赖关系,当一个对象的状态发生变化时,它会自动通知所有依赖它的对象,让它们进行相应的更新操作。这种模式适用于以下场景:
实现观察者模式,可以通过以下步骤:
这样,当被观察者的状态发生改变时,就会通知所有观察者,让它们能够及时更新自己的状态。
// 1. 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); } } notifyObservers(data) { for (const observer of this.observers) { observer.update(data); } } } // 2. class Observer { constructor() {} update(data) { console.log(`Received data:${data}`); } } // 3. const subject = new Subject(); const observer1 = new Observer(); const observer2 = new Observer(); subject.addObserver(observer1); subject.addObserver(observer2); // 4. subject.notifyObservers(JSON.stringify({ message: 'Hello' }));
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。