如何记住观察者模式跟发布-订阅模式的区别

前言

先说下如何简单粗暴的记住这二者之间的区别:

观察者模式跟发布-订阅模式,记住发布-订阅模式直接的小横杠连接符即可。

这个连接符就是观察者模式跟发布-订阅模式最大的不同,即是否经过中间人代理转发。

但是观察者模式跟发布-订阅模式二者之间的关系其实谈不上异同,具体解析请看正文。

观察者模式跟发布-订阅模式的关系

先简述下二者的定义:

观察者模式的定义是:对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。

发布-订阅模式的定义是:消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者)。而是将发布的消息分为不同的类别,无需了解哪些订阅者(如果有的话)可能存在。同样的,订阅者可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需了解哪些发布者(如果有的话)存在。

不难看出发布-订阅模式是完全符合观察者模式的定义。

这两位之所以如此其实是因为发布-订阅模式并不是初始的23种设计模式之一而是脱胎于观察者模式的,或者说是一种常用的观察者模式的形式。所以二者之间弹不道

一个简单的观察者模式中目标的状态发生改变时需要自己去通知观察者,观察者与被目标之间是耦合的,模块之间耦合的利弊不必多说,想要解耦的话那么比如要有一个中间件来进行代理,于是订阅-发布模式就应运而生了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值