Skip to content

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 事件通知开发者容器已完成刷新动作。


Released under the MIT license.