观察者模式和发布-订阅模式的区别

如题所述

第1个回答  2022-07-24

【1】定义

观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,并自动更新。观察者模式属于行为型模式,行为型模式关注的是对象之间的通讯,观察者模式就是观察者和被观察者之间的通讯。观察者模式有一个别名叫“发布-订阅模式”,或者说是“订阅-发布模式”,订阅者和订阅目标是联系在一起的,当订阅目标发生改变时,逐个通知订阅者。

【2】案例

【3】主要解决的问题

一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。

【4】优点

【5】缺点

【1】介绍

其实24种基本的设计模式中并没有发布-订阅模式,上面也说了,他只是观察者模式的一个别称。但是经过时间的沉淀,似乎他已经强大了起来,已经独立于观察者模式,成为另外一种不同的设计模式。在现在的发布订阅模式中,称为发布者的消息发送者不会将消息直接发送给订阅者,这意味着发布者和订阅者不知道彼此的存在。在发布者和订阅者之间存在第三个组件,称为消息代理或调度中心或中间件,它维持着发布者和订阅者之间的联系,过滤所有发布者传入的消息并相应地分发它们给订阅者。

【2】案例

【3】优点

【4】缺点

【5】主要解决问题
发布-订阅模式是前端常用的一种设计模式,现在主流的MVVM框架,都大量使用了此设计模式,其主要作用有以下两点:

前端的事件绑定有三要素:

从表面上看:

往更深层次讲:

从使用层面上讲