Eventbus 事件总线

来源:互联网 发布:土豆客户端 mac 编辑:程序博客网 时间:2024/05/17 08:20

什么是Eventbus

    Eventbus是允许不同组件之间相互通信,而又不知道彼此的一种机制。一个组件能够在不知道谁(或谁们)会拾取事件时,将事件放到Eventbus上。组件能够监听在总线上的事件,但并不需要知道是谁把事件放在那里的。也就是说,组件之间能够在不依赖于彼此的前提下相互通信。同时,组件也很容易被替换。只要新的组件能够理解正在被发送和接收的事件,那么其他组件永远都不会知道旧的组件被替换了。

    那么到底什么是组件呢?其实组件可能是任何东西。在绝大多数Eventbus中,组件是Java对象。它们接收也监听事件。

    那事件又是什么呢?通常情况下事件是被组件发送和接收的信息。一般情况下他们包含接收者所需要用来处理事件的所有信息。

    关于Eventbus的其他部分就比较依赖于具体实现。一般来说,Java的Eventbus会要求事件的发送者创建一个事件对象,这个对象里面可以放满接收者需要的数据。然后这个发送者被称为eventbus.sent(event)。接收者需要执行某个带有onEvent方法的接口,从而接收来自Eventbus的呼叫。因此多数Eventbus只支持单向通信。

0 0
原创粉丝点击