JS实现发布订阅者模式
时间: 2024-09-26 21:12:36 浏览: 10
在JavaScript中,发布/订阅者模式(Publish-Subscribe Pattern)也被称为观察者模式,是一种设计模式,用于建立对象之间的一对多依赖关系。当数据发生变化时,所有依赖于该数据的对象都会得到通知并自动更新。通常通过事件系统、函数回调或者类的监听者属性(如`addEventListener`和`removeEventListener`)来实现。
以下是简单的步骤:
1. **创建发布者**:定义一个发布者对象,它有一个数组存储所有订阅者,以及一个触发事件的方法。
```javascript
class Publisher {
constructor() {
this.subscribers = [];
}
subscribe(callback) {
this.subscribers.push(callback);
}
publish(data) {
this.subscribers.forEach(subscriber => subscriber(data));
}
}
```
2. **创建订阅者**:创建一个或多个订阅者,它们需要有接收并处理事件的方法。
```javascript
class Subscriber {
update(data) {
console.log('Subscriber received:', data);
}
}
const publisher = new Publisher();
const subscriber = new Subscriber();
publisher.subscribe(subscriber.update);
```
3. **触发事件**:发布者调用`publish`方法时,会通知所有已注册的订阅者。
```javascript
publisher.publish('New data available');
```