您的当前位置:首页js观察者模式是什么

js观察者模式是什么

2024-08-01 来源:哗拓教育

说明

1、定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。

2、包括

Subject:主体对象(状态发布者),维护观察者列表,添加或删除观察者。

Observer:观察者,知道自己观察的状态是描述的哪一个对象,提供更新操作。

实例

  class Subject {
  constructor () {
    this.state = 0;
    this.observers = [];
  }
  getState () {
    return this.state;
  }
  setState (state) {
    this.state = state;
    this.notify();
  }
  notify () {
    this.observers.forEach(observer => {
      observer.update();
    })
  }
  attach (observer) {
    this.observers.push(observer);
  }
}
 
 
class Observer {
  constructor (name, subject) {
    this.name = name;
    this.subject = subject;
    this.subject.attach(this);
  }
  update () {
    console.log(`${this.name} update, state: ${this.subject.getState()}`);
  }
}
 
let sub = new Subject();
let observer1 = new Observer('o1', sub);
let observer2 = new Observer('o2', sub);
 
sub.setState(1);

以上就是js观察者模式的介绍,希望对大家有所帮助。更多js学习指路:

显示全文