#observer
观察者模式定义了对象间一对多的依赖关系,当一个对象(目标对象)的状态发生改变时,
所有依赖于它的对象(观察者)都将得到通知,并自动更新
class Observer {
name: string
constructor(name: string) {
this.name = name
}
update() {
console.log(this.name)
}
}
//目标对象
class Subject {
observers: Observer[] = []
add(observer: Observer) {
this.observers.push(observer)
}
delete(observer: Observer) {
this.observers.filter((o) => o !== observer)
}
notify() {
this.observers.forEach((observer) => {
observer.update()
})
}
}
const subject = new Subject()
const observer1 = new Observer('1')
const observer2 = new Observer('2')
subject.add(observer1)
subject.add(observer2)
subject.notify()