第 23 题:介绍下观察者模式和订阅-发布模式的区别,各自适用于什么场景?

发布于 2022-05-25 13:17:30 字数 290 浏览 994 评论 8

观察者模式中主体和观察者是互相感知的,发布-订阅模式是借助第三方来实现调度的,发布者和订阅者之间互不感知

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

放飞的风筝 2022-05-04 13:06:53

观察者模式为一刀切模式,对所有订阅者一视同仁
发布订阅模式 可以戴有色眼镜,有一层过滤或者说暗箱操作

梦里人 2022-05-04 11:23:56

vue 中的 observer watcher dep 可以理解为发布订阅者模式吧?

应该是观察者模式。 vue的事件通讯机制才是发布订阅模式

数据劫持+发布订阅

从命名上就可以区别,观察者(observer)和主题(subject)对象

作妖 2022-05-04 08:47:18

vue 中的 observer watcher dep 可以理解为发布订阅者模式吧?

应该是观察者模式。 vue的事件通讯机制才是发布订阅模式

数据劫持+发布订阅

最初的梦 2022-05-04 08:39:46

vue 中的 observer watcher dep 可以理解为发布订阅者模式吧?

应该是观察者模式。 vue的事件通讯机制才是发布订阅模式

七色彩虹 2022-05-04 06:58:03

联系

发布-订阅模式是观察者模式的一种变体。发布-订阅只是把一部分功能抽象成一个独立的ChangeManager。

意图

都是某个对象(subject, publisher)改变,使依赖于它的多个对象(observers, subscribers)得到通知。

区别与适用场景

总的来说,发布-订阅模式适合更复杂的场景。

在「一对多」的场景下,发布者的某次更新只想通知它的部分订阅者?

在「多对一」或者「多对多」场景下。一个订阅者依赖于多个发布者,某个发布者更新后是否需要通知订阅者?还是等所有发布者都更新完毕再通知订阅者?

这些逻辑都可以放到ChangeManager里。

迷你仙 2022-05-04 05:46:39

观察者模式依赖一旦改变就会触发更新,而订阅发布模式则需要手动触发更新

盗梦空间 2022-05-03 14:19:56

可不可以理解 为 观察者模式没中间商赚差价
发布订阅模式 有中间商赚差价

无敌元气妹 2022-05-02 12:46:18
  1. 发布-订阅模式就好像报社, 邮局和个人的关系,报纸的订阅和分发是由邮局来完成的。报社只负责将报纸发送给邮局。
  2. 观察者模式就好像 个体奶农和个人的关系。奶农负责统计有多少人订了产品,所以个人都会有一个相同拿牛奶的方法。奶农有新奶了就负责调用这个方法。
~没有更多了~

关于作者

北斗星光

暂无简介

0 文章
0 评论
25 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文