Spring中如何详细解析事件驱动机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4019个文字,预计阅读时间需要17分钟。
事件机制中,最常浮现的便是日常使用的各种listener。listener用于监听事件源,一旦监听的事件发生变化,就会通知listener。然后针对变化执行相应的动作。
说到事件机制,可能脑海中最先浮现的就是日常使用的各种 listener,listener去监听事件源,如果被监听的事件有变化就会通知listener,从而针对变化做相应的动作。这些listener是怎么实现的呢?说listener之前,我们先从设计模式开始讲起。
观察者模式
观察者模式一般包含以下几个对象:
- Subject:被观察的对象。它提供一系列方法来增加和删除观察者对象,同时它定义了通知方法notify()。目标类可以是接口,也可以是抽象类或具体类。
- ConcreteSubject:具体的观察对象。Subject的具体实现类,在这里实现通知事件。
- Observer:观察者。这里是抽象的观察者,观察者有一个或者多个。
- ConcreteObserver:具体的观察者。在这里维护观察对象的具体操作。
按照观察者对象,我们来写一个简单的观察者示例,定义一个气象中心,发布气象信息,观察者是各个电视台,订阅气象中心的信息,有新增的气象信息发布的时候,及时播报。
本文共计4019个文字,预计阅读时间需要17分钟。
事件机制中,最常浮现的便是日常使用的各种listener。listener用于监听事件源,一旦监听的事件发生变化,就会通知listener。然后针对变化执行相应的动作。
说到事件机制,可能脑海中最先浮现的就是日常使用的各种 listener,listener去监听事件源,如果被监听的事件有变化就会通知listener,从而针对变化做相应的动作。这些listener是怎么实现的呢?说listener之前,我们先从设计模式开始讲起。
观察者模式
观察者模式一般包含以下几个对象:
- Subject:被观察的对象。它提供一系列方法来增加和删除观察者对象,同时它定义了通知方法notify()。目标类可以是接口,也可以是抽象类或具体类。
- ConcreteSubject:具体的观察对象。Subject的具体实现类,在这里实现通知事件。
- Observer:观察者。这里是抽象的观察者,观察者有一个或者多个。
- ConcreteObserver:具体的观察者。在这里维护观察对象的具体操作。
按照观察者对象,我们来写一个简单的观察者示例,定义一个气象中心,发布气象信息,观察者是各个电视台,订阅气象中心的信息,有新增的气象信息发布的时候,及时播报。

