class Subject {
constructor() {
// 关注者的队列
this.observers = [];
this.count = 0;
}
subscribe(ob) {
// 订阅
this.observers.push(ob);
}
unsubscribe(ob) {
const index = this.observers.indexOf(ob);
if (index > -1) {
this.observers.splice(index, 1);
}
}
notifyMessage() {
// 派发通知
this.observers.forEach((ob) => {
ob.update(this.count);
});
}
update(count) {
// 更新数据之后 派发更新
this.count = count;
this.notifyMessage();
}
}
class Observer {
update(count) {
console.log("接收到的count:" + count);
}
}
const sub = new Subject();
const ob = new Observer();
sub.subscribe(ob);
sub.update(5);
JS 设计模式之观察者模式
最新推荐文章于 2024-09-06 13:44:14 发布