观察者模式
观察者模式算是前端最常用的设计模式了,观察者模式概念很简单:观察者监听被观察者的变化,被观察者发生改变时,通知所有的观察者。观察者模式被广泛用于监听事件的实现,有关观察者模式的详细应用,可以看我另一篇讲解Redux实现的文章
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| class Observer { constructor (fn) { this.update = fn } }
class Subject { constructor() { this.observers = [] } addObserver(observer) { this.observers.push(observer) } notify() { this.observers.forEach(observer => { observer.update() }) } }
var subject = new Subject() const update = () => {console.log('被观察者发出通知')} var ob1 = new Observer(update) var ob2 = new Observer(update) subject.addObserver(ob1) subject.addObserver(ob2) subject.notify()
|