事件机制包含4个步骤:注册侦听器,发送事件,侦听事件,移除侦听器。这四个步骤是按照顺序来执行的,本文正是event事件的简单实例。
一)Event基类事件的定义与设计
主要有事件类型、事件句柄、事件参数、处理结果、处理标志等,另外还有对应的事件带参构造器
/**
* 基类事件
*
* @author xiu
* @version 2017年8月2日 上午11:26:06
*/
public class Event {
/**
* 事件类型 {@link EventType}
*/
private int eventType;
/**
* 事件句柄
*/
private int handle;
/**
* 事件参数
*/
private Object[] param;
/**
* 处理结果
*/
private Object result;
/**
* 公司ID
*/
private Long characterId;
/**
* 处理标志
*/
private Integer flag;
public Event() {
}
/**
* 事件构造器,初始化一个event
* @param eventType
* 事件类型{@link Event}
* @param handle
* 事件句柄,对于使用道具就是道具ID
* @param param
* 事件参数
*/
public Event(int handle, Object... param) {
this.eventType = handle/1000;
this.handle = handle;
this.param = param;
}
/**
* @param eventType
* 事件类型{@link Event}
* @param handle
* 事件句柄,对于使用道具就是道具ID
* @param param
* 事件参数
*/
public Event(int eventType, int handle, Object[] param) {
this.eventType = eventType;
this.handle = handle;
this.param = param;
}
public int getEventType() {
return eventType;
}
public void setEventType(int eventType) {
this.eventType = eventType;
}
public int getHandle() {
return handle;
}
public void setHandle(int handle) {
this.handle = handle;
}
public Object[] getParam() {
return param;
}
public void setParam(Object[] param) {
this.param = param;
}
public Object getResult() {
return result;
}
public void setResult(Object result) {
this.result = result;
}
public Long getCharacterId() {
return characterId;
}
public void setCharacterId(Long characterId) {
this.characterId = characterId;
}
public Integer getFlag() {
return flag;
}
public void setFlag(Integer flag) {
this.flag = flag;
}
}
二&#x