Guava简介
Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。其中EventBus是Guava中的事件处理机制,它是设计模式中观察者模式的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅的解决方案,我们不用创建复杂的类和接口层次结构。
EventBus用法
我们使用Guava之后,如果要订阅消息,只需要在监听者对应的方法加上Subscribe注解。
监听者1
1 | public class EventListener { |
监听者2
1 | public class EventListener2 { |
Dead Event
如果EventBus发送的消息都不是订阅者关心的称之为Dead Event。
监听者
1 | public class DeadEventListener { |
Event的继承
如果Listener A监听Event A,而Event A有一个子类Event B,此时Listener A将同时接收 Event A 和 Event B的消息。
监听者1
1 | public class EventListener { |
监听者2
1 | public class EventListener2 { |
测试类及输出结果
1 | public class GuavaEventBusTest { |