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

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

作者: 奔跑地蜗牛 | 来源:发表于2019-03-03 15:31 被阅读0次

观察者模式

观察者模式定义了主题(Subject)和观察者(Observer)之间一对多的关系,在主题有更新时,调用观察者更新接口来通知观察者;
其UML图如下:


观察者模式.png

订阅发布模式

订阅发布模式中存在一个消息发布者(publisher)和消息订阅者(subscriber),消息发布者向消息代理者分发消息,而消息代理者负责将这些消息分别转发给消息订阅者,在整个过程中,消息发布者和消息订阅者都不知道彼此的存在。其具体流程图如下:


发布订阅模式.png

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

  • 在观察者模式中,主题和观察者是彼此都知道对方的,就好像微信公众号和关注者;而订阅发布模式中,消息发布者和订阅者是不知道彼此的,就好像报纸投稿人和报纸订阅者,报纸订阅者并不关系投稿人是谁,而在乎的是报纸的主题,而报纸投稿人也不再到自己写的这篇报告会有哪些人订阅。

  • 观察者模式多数情况下是同步的,当有事件发生时,就去调用观察者相应方法;而发布订阅者往往是异步的,使用消息队列;

-观察者一般在单个应用地址空间实现,而发布订阅更像交叉应用模式;

相关文章

网友评论

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

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