事件机制包含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;
}
}

本文介绍了Java中事件处理机制的四个步骤,并通过游戏event事件分发处理为例进行详细阐述。首先定义了事件基类,包括事件类型、句柄、参数等,接着设计了事件处理器接口和抽象事件处理器。然后,构建了事件分发器,实现注册监听器、分发事件等功能。在实际应用中,事件监听器在服务器启动时注册,游戏逻辑中通过发送事件触发业务处理,利用事件分发简化复杂流程。这一机制体现了订阅者模式的设计思想。
最低0.47元/天 解锁文章
806

被折叠的 条评论
为什么被折叠?



