专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

解构EventBus框架(二)引入EventBus

总线的由来

总线的概念来源于计算机硬件,指的是各个硬件之间的交互方式。总线提供了一个通用的方式为各组件提供数据传输和控制逻辑。

我们引入“事件总线”,它为我们解决了两个核心的问题

  • 统一的事件注册
  • 统一的事件分发

引入EventBus

以Google的EventBus为例,我们直接看下实现

1、标记

@Subscribe
public void openUserHandler(Event event) {
}

2、注册

// eventbus 实例化
final EventBus eventBus = new EventBus("default");

//注册服务
eventBus.register(resourceService);
eventBus.register(smsPushService);
eventBus.register(workOrderService);

3、分发

//开户业务
User user = new User();
user.setId("2");
user.setName("wang");

//开户之后发送Event
Event event = new Event(user);
eventBus.post(event);

使用EventBus之后,只需要少量的代码即可实现业务解耦。

对比之前的实现

注册
  • 之前实现

    没有实现统一注册,每个事件注册自己的事件处理器,例如:开户-开户处理器、修改密码-修改密码处理器等

  • EventBus

    通过注解标记方法,完成事件和事件处理器的映射,实现了统一注册

分发
  • 之前实现

    事件的分发者需要关注具体应该发给谁

  • EventBus

    调用方无须关注,可以将事件post出来

本章内容主要引入了EventBus以及和之前的实现做个对比,下章节中我们自己尝试动手实现一个EventBus。

文章永久链接:https://tech.souyunku.com/36465

未经允许不得转载:搜云库技术团队 » 解构EventBus框架(二)引入EventBus

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们