观察者模式:
观察者模式有两个主体,一个是观察者watcher,一个是被观察者Dep。它是一种一对多的关系,且耦合性很强。比如:一个小宝宝需要父母等长辈的照顾,如果小宝宝哭闹,那么父母都要赶紧过来服务,当它的对象状态发生改变时,所有依赖于它的对象都需要被通知。vue中数据响应就用了观察者模式,当一个数据变了,其他组件的各种插值表达式,v-bind都会随之更新。
发布订阅模式:
发布订阅模式有三个主体,即发布者、调度中心(事件通道)、订阅者。因为发布者和订阅者互相不知道彼此的存在,它们是通过调度中心相关联的,所以耦合性比较低,在vue中eventBus就是这种模式
这两种模式的区别就在于发布订阅模式多了一个调度中心,从而实现了解耦。