观察者模式基本实现 Observer Pattern

观察者模式的基本实现, 原理性代码
更新于: 2021-11-19 14:43:16
class Producer {
  constructor() {
    this.listeners = [];
  }
  add(listener) {
    if (typeof listener === "function") {
      this.listeners.push(listener);
    } else {
      throw new Error("listener 必須是 function");
    }
  }
  remove(listener) {
    this.listeners.splice(this.listeners.indexOf(listener), 1);
  }
  notify(message) {
    this.listeners.forEach((listener) => {
      listener(message);
    });
  }
}