Event
概述
在开发的过程中,我们经常需要通过观察者模式去解决一些问题。本类库实现了一套简单提事件广播与监听的机制。
ApplicationEvent Interface
ApplicationEvent
是事件的接口,开发者在定义事件时需要继承于该接口。ApplicationEvent
的定义如下:
kotlin
interface ApplicationEvent {
/**
* 事件源
*/
val source: Any
}
ApplicationListener Interface
ApplicationListener
是事件的监听器接口,开发者在定义事件临听器时需要实现该接口。ApplicationListener
的定义如下:
kotlin
interface ApplicationListener<E : ApplicationEvent> {
/**
* 处理应用事件
*/
fun onApplicationEvent(event: E)
}
ApplicationPublisher Interface
ApplicationPublisher
是事件广播器的接口,开发者通常通过该接口来广播事件。ApplicationContext
实现了该接口,因此开发者也可以通过 ApplicationContext
来广播事件。在广播事件的过程中,ApplicationPublisher
会去查找实现了 ApplicationListener
接口的监听器,如果该监听器监听的类型与事件类型符合,则通知该监听器,完成事件广播。在程序启动的过程中,ApplicationContext 就会广播 ContextRefreshedEvent
事件通知开发者容器已完成刷新动作。