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

146 阅读1分钟

发布订阅模式(publish-subscribe pattern):

           假定存在一个“信号中心”,某个任务执行完成,就向信号中心“发布”(publish)一个信号,其他任务可以向信号中心“订阅”(subscribe)这个信号,从而知道什么时候自己可以开始执行。

观察者模式:

  1. 观察者(订阅者)--watcher
  • update():当事件发生时,具体要做的事情

   2. 目标(发布者)--dep

  • sub数组:存储所有的观察者
  • addSub():添加观察者
  • nitify():当事件发生,调用所有观察者的update()方法

    3. 没有事件中心

观察者模式是由具体目标调度,比如当事件触发,Dep就会去调观察者的方法,所以观察者模式的订阅者与发布者之间是存在依赖的。

发布订阅模式由统一调度中调用,因此发布者和订阅者不需要知道对方的存在。