观察者模式

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(‘心情很糟糕‘);

观察者模式就是当我发生改变时候,通知观察者执行相应事件

以上是关于观察者模式的主要内容,如果未能解决你的问题,请参考以下文章

未调用 LiveData 观察者

Java设计模式补充:回调模式事件监听器模式观察者模式(转)

如何为片段设置观察者

永远观察实时数据的片段

设计模式观察者模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )

观察者模式