美文网首页
观察者模式vs发布订阅模式

观察者模式vs发布订阅模式

作者: 小猪佩奇的王子 | 来源:发表于2019-12-01 11:21 被阅读0次

观察者模式

需要感知双方的存在,耦合

//被观察者
var subject = {
    observers: [],
    notify() {
        this.observers.forEach(observer =>{
            observer.update()
        })
    },
    attach (observer) {
        this.observers.push(observer)
    }
}
//观察者
var observer = {
    update(){
        alert('updated')
    }
}
subject.attach(observer)
subject.notify()

发布订阅模式

类似观察者模式,但是通过中间调度,解耦合

var publisher = {
    publish(pubsub) {
        pubsub.publish()
    }
}
var pubsub = {
    subscribes: [],
    publish() {
        this.subscribes.forEach(subscribe =>{
            subscribe.update();
        })
    },
    subscribe(sub) {
        this.subscribes.push(sub)
    }
}
var subscribe = {
    update() {
        console.log('update')
    },
        subscribe(pubsub) {
            pubsub.subscribe(this);
        }
}
subscribe.subscribe(pubsub)
publisher.publish(pubsub)

相关文章

网友评论

      本文标题:观察者模式vs发布订阅模式

      本文链接:https://www.haomeiwen.com/subject/ctdzwctx.html