观察者设计模式
js
class Observer {
constructor(fn) {
this.fn = fn
}
update(...args) {
this.fn(...args)
}
}
class Subject {
oberverList: []
addObserver(observer) {
this.oberverList.push(observer)
}
notify(...args) {
this.oberverList.forEach((observer) =>{
observer.update(...args)
})
}
}
// 测试
const ob1 = new Observer((...ags) => {
console.log('监听者1', ...ags)
})
const ob2 = new Observer((value) => {
console.log('监听者2', value)
})
const sub = new Subject()
sub.addObserver(ob1)
sub.addObserver(ob2)
sub.notify(1,2,3)