观察者模式
概念
一个主体有多个观察者,当主体的状态发生改变时,通知观察者。
代码示例和UML类图
代码示例:
class Subject {
private state = 0;
private observers: Observer[] = [];
getState() {
return this.state;
}
setState(newState: number) {
this.state = newState;
this.notify(newState);
}
attach(observer: Observer) {
this.observers.push(observer);
}
private notify(state: number) {
this.observers.forEach((observer) => {
observer.update(state);
});
}
}
class Observer {
constructor(private name: string) {}
update(state: number) {
console.log(`${this.name}先生:${state}号客人的餐已经好了`);
}
}
const observer1 = new Observer('小明');
const observer2 = new Observer('小张');
const subject = new Subject();
subject.attach(observer1);
subject.attach(observer2);
subject.setState(2);
UML类图:
应用场景
- DOM事件
- Vue、React的生命周期
- Vue的watch、watchEffect
- 异步回调
- MutationObserver
點擊查看更多內(nèi)容
為 TA 點贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦