观察者模式
Posted qisexin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了观察者模式相关的知识,希望对你有一定的参考价值。
// 被观察者
class Subject {
constructor(name) {
this.name = name;
// 存放所有观察者
this.observers = [];
// 心情状态
this.mood = "心情很美丽";
}
// 接受观察者方法
attach(observer) {
// 批量添加观察者
this.observers.push(observer);
}
setMood(newMood) {
this.mood = newMood;
this.observers.forEach(o => o.update(newMood))
}
}
// 观察者
class Observer {
constructor(name) {
this.name = name;
}
// 更新状态时
update(newMood) {
console.log(newMood)
}
}
let sub = new Subject(‘girl‘);
let o1 = new Observer(‘boy‘);
let o2 = new Observer(‘father‘);
sub.attach(o1);
sub.attach(o2);
sub.setMood(‘心情很糟糕‘);
观察者模式就是当我发生改变时候,通知观察者执行相应事件
以上是关于观察者模式的主要内容,如果未能解决你的问题,请参考以下文章
Java设计模式补充:回调模式事件监听器模式观察者模式(转)