• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
社会优先于个人
博客园    首页    新随笔    联系   管理    订阅  订阅
发布订阅模式和观察者模式

参考文章

https://www.mianshigee.com/note/detail/55937pjh/

设计模式

  • 是一种解决方案,是一种思想
  • 不局限于软件行业
  • 《设计模式》是一本介绍软件好的设计的书

观察者模式

  • 当一个对象发生改变,所有依赖它的对象都会改变,自动更新
  • 观察者和被观察者之间是直接通讯的
  • 观察者直接观察被观察者,当被观察者被激活,会触发观察者里的事件
  • 由被观察者调度,每个被观察者都有对观察者的处理,这种处理方式直接粗暴,但容易造成代码冗余

发布订阅模式

  • 发布者(消息发送者)不会直接把消息给订阅者
  • 发布者和订阅者之间有个调度中心,它会过滤发布者发来的信息并分发给对应的订阅者
  • 订阅者把自己想订阅的事件注册在调度中心,当发布者发布这个事件到调度中心,调度中心就会调度订阅者注册的处理代码
  • 发布者和订阅者互相不干扰,实现了解耦,还可以实现更细的控制。比如,一个消息不想所有的订阅者都接收到,可以设置权限

区别

  • 最大的区别就是发布订阅模式有个调度中心
  • 二者的目的都是一样的,实现一对多的依赖关系,自动更新。实现方式和结构,有所不同。
posted on 2022-04-09 20:14  社会优先于个人  阅读(41)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3