Java事件模型
一.java事件模型
java中的事件机制的参与者有3种角色:
- Event Eource:
具体的事件源,比如说,你点击一个button,那么button就是event source,要想使button对某些事件进行响应,你就需要注册特定的listener。 - Event Object:
事件状态对象,用于 listener 的相应的方法之中,作为参数,一般存在于listerner 的方法之中 - Event Listener:
当它监听到event object产生的时候,它就调用相应的方法,进行处理。
例子如下,Spring-context 的事件机制的根类:
public abstract class ApplicationEvent extends EventObject {
private static final long serialVersionUID = 7099057708183571937L;
private final long timestamp = System.currentTimeMillis();
public ApplicationEvent(Object source) {
super(source);
}
public final long getTimestamp() {
return this.timestamp;
}
}
而Apollo配置中心的事件处理类AppCreationEvent
,是继承自Spring的。
public class AppCreationEvent extends ApplicationEvent {
public AppCreationEvent(Object source) {
super(source);
}
public App getApp() {
Preconditions.checkState(source != null);
return (App) this.source;
}
}