feature: design patter

This commit is contained in:
binpeng.liu
2023-11-02 16:06:38 +08:00
parent 32eda66409
commit a329691f8a
16 changed files with 1355 additions and 6 deletions

View File

@@ -282,8 +282,8 @@ public DObserver {
## 实现 EventBus 框架
EventBus 中两个核心函数 register() 和 post() 的实现原理。弄懂了它们,基本上就弄懂了整个 EventBus 框架。下面两张图是这两个函数的实现原理图。
![](./../assets/EventBus-ObserverRegisterTable.png)
![](./../assets/EventBus-Post.png)
![](https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/EventBus-ObserverRegisterTable.png)
![](https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/EventBus-Post.png)
最关键的一个数据结构是 Observer 注册表,记录了消息类型和可接收消息函数的对应关系。当调用 register() 函数注册观察者的时候EventBus 通过解析
@Subscribe 注解,生成 Observer 注册表。