手写一个EventBus

EventBus是一种事件发布/订阅模式的实现,用于在应用程序的不同组件之间进行通信。它允许组件之间通过事件来进行解耦,从而实现松散耦合的架构。

EventBus通常由以下几个核心组件组成:

  1. 事件:事件是应用程序中的某个特定动作或状态的表示,通常由一个唯一的标识符(例如字符串)来标识。

  2. 发布者(Publisher):发布者是产生事件的组件,它负责将事件发布到EventBus上。

  3. 订阅者(Subscriber):订阅者是对事件感兴趣的组件,它通过订阅事件来接收事件的通知。

  4. EventBus:EventBus是事件的中心枢纽,它负责接收发布者发布的事件,并将事件分发给对该事件感兴趣的订阅者。

EventBus的工作流程如下:

  1. 发布者通过EventBus发布事件,将事件和相应的数据(可选)发送给EventBus。

  2. EventBus接收到事件后,会根据事件的标识符查找对该事件感兴趣的订阅者。

  3. EventBus将事件分发给订阅者,订阅者执行与事件相关的操作。

通过使用EventBus,组件之间可以解耦,发布者和订阅者之间不需要直接交互,只需要通过事件进行通信。这样可以提高代码的可维护性和可扩展性,使得应用程序更加灵活和易于维护。

在不同的编程语言和框架中,EventBus的实现方式可能会有所不同,但基本的原理和概念是相似的。常见的EventBus实现包括EventEmitter(Node.js中的内置模块)、Vue.js的EventBus、Spring Framework的ApplicationEvent等。

  • 下面来手写一个简单的EventBus
class EventBus {
   
    constructor() {
   
      this.events = {
   };
    }
  
    // 订阅事件
    on(eventName, callback) {
   
      if (!this.events[eventName
  • 33
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为了WLB努力

给点小钱,你的鼓励是我坚持动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值