JavaScript设计模式

观察者模式

2021-07-08  本文已影响0人  浅忆_0810

1. 介绍

// 目标(发布者)
class Dep {
  constructor () {
    // 存储所有的观察者
    this.subs = []
  }
  // 添加观察者
  addSub (sub) {
    if (sub && sub.update) {
      this.subs.push(sub);
    }
  }
  // 通知
  notify () {
    this.subs.forEach(sub => {
      sub.update();
    })
  }
}

// 观察者(订阅者)
class Watcher {
  update () {
    console.log('update');
  }
}

// 测试
let dep = new Dep()
let watcher = new Watcher()

dep.addSub(watcher)
dep.notify()

2. 发布订阅模式与观察者模式的区别

上一篇下一篇

猜你喜欢

热点阅读