题解 | #观察者模式#
观察者模式
https://www.nowcoder.com/practice/557ec9ca35d542feaa06261385711323
class Observerd {
constructor(name) {
this.name = name
this.state = '走路'
this.observerSet = new Set()
}
// 用于保存观察者们
setObserver(observer) {
this.observerSet.add(observer)
}
// 用于设置该观察者"state"并通知所有观察者
setState(state) {
this.state = state
for (let observer of this.observerSet) {
observer.update(this.name, state)
}
}
}
class Observer {
// 用于被观察者进行消息通知,需要打印(console.log)数据,
// 数据格式为:小明正在走路。
// 其中"小明"为被观察者的"name"属性,"走路"为被观察者的"state"属性
update(name, state) {
console.log(`${name}正在${state}`);
}
}

