码迷,mamicode.com
首页 > 其他好文 > 详细

观察者模式

时间:2020-06-27 11:53:36      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:const   new   状态   sub   fat   rip   script   reac   console   

// 被观察者
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(‘心情很糟糕‘);

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

观察者模式

标签:const   new   状态   sub   fat   rip   script   reac   console   

原文地址:https://www.cnblogs.com/qisexin/p/13197585.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!