Guava之EventBus源码分析

简介

事件总线。

有助于深入理解代码的功能和实现细节。

可以了解代码背后的逻辑、算法、数据结构和设计模式等方面,从而更好地理解代码的作用和功能。

可以学习到业界的最佳实践和设计模式。

这有助于提高自己的编程水平,使你能够编写更高质量、可扩展性和可维护性的代码。

代码结构

包:

com.google.common.eventbus

类:

文件 类型 描述
AllowConcurrentEvents 注解
AsyncEventBus 异步事件总线
DeadEvent 无订阅事件
Dispatcher 抽象类 分发器,有三种:PerThreadQueuedDispatcher LegacyAsyncDispatcher ImmediateDispatcher
EventBus 同步事件总线
Subscribe 注解 事件订阅注解
Subscriber 订阅者
SubscriberExceptionContext 订阅异常上下文
SubscriberExceptionHandler 接口 订阅异常处理器
SubscriberRegistry 单个事件总线的订阅者的注册

设计模式

观察者模式

发布订阅模式

核心类

分发器

1、PerThreadQueuedDispatcher

同步分发器

执行器

MoreExecutors.directExecutor()

2、LegacyAsyncDispatcher

异步分发器

执行器

自定义线程池

相关推荐
星火开发设计3 分钟前
类模板:实现通用数据结构的基础
java·开发语言·数据结构·c++·html·知识
小宋102112 分钟前
Java 数据库访问 vs Python 数据库访问:JDBC vs ORM
java·数据库·python
君爱学习20 分钟前
MySQL 分布式锁实现方案
java
努力学编程呀(๑•ี_เ•ี๑)27 分钟前
【405】Not Allowed
java·vue.js·nginx·node.js
未既37 分钟前
docker & docker-compose离线部署步骤
java·docker
Zachery Pole1 小时前
JAVA_04_判断与循环
java·开发语言
Volunteer Technology1 小时前
LangGraph的WorkFlow(一)
java·服务器·windows
懒惰成性的1 小时前
11.Java的String类
java·开发语言
FoldWinCard1 小时前
Python 第三次作业
java·服务器·python
傻啦嘿哟1 小时前
Python列表排序:用key参数掌控排序规则
java·开发语言