Java事件处理情势[Java编程]
本文“Java事件处理情势[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Java的事件情势是动态呼应系统重要的底子,在图形界面范畴的事件情势已经有很多文章介绍,但是在服务器端我们会碰到更多的事件情势,这里本人试图总结一下:
事件直接驱动情势
事件情势的第一个要求就是性能的要求,需求直接并且快,Command情势是必须常常利用的,主要合适于疾速处理 前台的号令,Command情势常常是系统架构的重要部份,也是流程掌握的主要情势.
Command情势常常Java的Reflect一同利用,因为系统的事件处理系统是处于动态改变的,随着功效要求扩大,便大概有动态改变事件处理呼应系统,以Struts中action为例,我们知道,Structs的一个主要配置文件是struts-config.xml 以下:
<struts-config>
<action-mappings>
<action path="/login" type="com.javapro.struts.LoginAction"/>
<action path="/logout" type="com.javapro.struts.LogoutAction"/>
</action-mappings>
</struts-config>
它实际是个command和event的映射关系,通过这个配置文件,运行时动态装载呼应的Action,完成Command情势, 我们查抄LoginAction代码,便可以看出Command情势的基本特点:
public final class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception {
.................
}
}
很明显,典型的Command情势需求有一个接口.接口中有一个统一的办法,这里统一的办法就是execute;
比方我们有个及时系统,客户段向服务器发出差别编码代号,意味着差别的恳求,差别的恳求有差别的Handler举行 处理,Handler接口是:
public class Handler{
public byte[] handleRequest();
}
差别性质的处理历程担当这个Handler接口,如负责进入系统的处理历程
public class EnterHandler implements Handler{
public byte[] handleRequest(){
//具体业务处理
......
}
}
调用Handler时是:
//从cache中获得这个requestId对应的Handler
Handler handler = (Handler)cache.get(new Integer(reqId));
//调用handler的统一办法handleRequest()
byte[] outInf = handler.handleRequest();
以上是常用的一个事件驱动情势.它的特点是靠一个事件直接启动对应的事件处理器.
Chain of Responsibility职责链情势也应当属于这类,当事件到达后,让这个事件在我们供应的一批处理器中一一挑选合适的处理器举行处理,这个情势缺陷是明显的,性能丧失在一一挑选 上,普通不举荐利用,这个情势合适在我们无法预知发生的事件内容时利用,因为不知道发闹事件的具体情形, 我们就无法在程序运行前事前为其指派呼应的处理器,只能靠运行时,事件自己去摸索“撞运气”.
以上是“Java事件处理情势[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |