第 23 题:介绍下观察者模式和订阅-发布模式的区别,各自适用于什么场景?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 第 26 题:介绍模块化发展历程
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
上一篇: 第 26 题:介绍模块化发展历程
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
观察者模式为一刀切模式,对所有订阅者一视同仁
发布订阅模式 可以戴有色眼镜,有一层过滤或者说暗箱操作
从命名上就可以区别,观察者(observer)和主题(subject)对象
数据劫持+发布订阅
应该是观察者模式。 vue的事件通讯机制才是发布订阅模式
联系
发布-订阅模式是观察者模式的一种变体。发布-订阅只是把一部分功能抽象成一个独立的ChangeManager。
意图
都是某个对象(subject, publisher)改变,使依赖于它的多个对象(observers, subscribers)得到通知。
区别与适用场景
总的来说,发布-订阅模式适合更复杂的场景。
在「一对多」的场景下,发布者的某次更新只想通知它的部分订阅者?
在「多对一」或者「多对多」场景下。一个订阅者依赖于多个发布者,某个发布者更新后是否需要通知订阅者?还是等所有发布者都更新完毕再通知订阅者?
这些逻辑都可以放到ChangeManager里。
观察者模式依赖一旦改变就会触发更新,而订阅发布模式则需要手动触发更新
可不可以理解 为 观察者模式没中间商赚差价
发布订阅模式 有中间商赚差价