JS之观察者模式和发布订阅模式--前端面试准备

二者工作原理&区别

观察者模式

  • 如同实验进行的过程一般,观察者和被观察者(目标)是紧耦合的,如果目标一旦触发了事件,观察者就会立刻作出响应的举措。

发布订阅模式

  • 发布者和订阅者二者之间存在一个中介,有点类似于你去app订阅喜欢的漫画一样,当漫画大大赶工出了新的一话并发布在了app上,app就会通知你:快来看漫画啦!
    漫画大大和宅小吴之间是没有互动的,即发布者和订阅者之间是松耦合的。

区别

  • 发布订阅模式比观察者模式多了一个调度中心;这个调度中心实现了解耦,且可以实现更细粒度的一些控制。(进行权限控制和节流操作)
  • 观察者模式大多数时候是同步的,而发布-订阅模式大多数时候是异步的(使用消息队列)。

发布订阅模式的代码实现

  • 需要有基本的订阅、取消订阅、发布的功能;
class PubSub {
   
    constructor() {
   
        this.subscribers = {
   }//订阅者初始化为空
        //为{订阅种类type:[订阅者队列],...,}
    }

    sub(type,subscriber){
   //订阅
        if(!Object.prototype.hasOwnProperty
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值