观察者模式

观察者模式

 1. 观察者模式定义了对象一对多的以来关系,当一个观察者对象的状态发生改变时,所依赖于它的被观察者都会发生对应的相应

2. 观察者模式是行为模式,行为模式关注的对象之间的通讯,观察者模式就是观察者和被观察者之间的通讯

3. 主体被激活,会触发观察者里的事件,主要思想是观察者和被观察者之间产生联系

 

代码实现

 

class Subject {
  constructor (state) {
    this.state = state
    this.observerList = []
  }
  attach(o) { // 观察者和被观察者之间产生关系
    this.observerList.push(o)
  }
  setState(newState) {
    this.state = newState
    this.observerList.forEach(o => o.update(newState))
  }
}
class Observer {
  constructor(name) {
    this.name = name
  }
  update(state) {
    console.log(this.name + state)
  }
}
let s1 = new Subject('状态1')
let o1 = new Observer('观察者1')
let o2 = new Observer('观察者2')

s1.attach(o1)
s1.attach(o2)
s1.setState('改变状态2')

 

posted @ 2019-09-04 09:21  KuiShen  阅读(162)  评论(0编辑  收藏  举报