设计java

j2ee轻量级框架,IMVC,IORM && web网络游戏

IMVC特性详解---非侵入性

    这里所谓的非侵入性,是指一定程度上的耦合性,比如IMVC和待开发项目的耦合性,servlet容器和IMVC的耦合性,IMVC内部处理的耦合性等等。
    1.action非继承。由于java语言不允许多重继承,如果action被框架所迫需要继承类的话,那么这个action的扩展性将受到一定的限制,比如struts的继承性就设计的比较失败。

    2.formBean的无侵入,IMVC中的formBean不需要继承人和类,甚至不需要实现任何接口,完全的一个pojo实体就能胜任。

    3.半servlet容器相关性,之所以说是半,因为IMVC的容器无关性是间于struts和webwork之间的,struts的action接受 httpServletRequest和HttpServletResponse类实例作为参数,另测试变得避免麻烦(虽然有工具可以辅助测试),这种 servlet完全相关性的设计,让action中获取servlet数据变得容易,但是却带来了测试痛苦的后果。而反过来,webwork的 action中不需要传入任何servlet相关部件,webwork通过一个转回去把servlet中的数据拷贝到一个容器无关类。非常有利于测试,但是对于在action中获取servlet数据变得不够直观(可以获取的),而且,每次请求都拷贝数据也有碍于性能的提升。IMVC的设计则介于两者之间。在IMVC的action中没有传入servlet任何部件,但是可以通过InstantContext获得request和response(注意不是获取request的数据,而是request,不用花费拷贝到性能)。但是,在拦截器设计中,传入的却是 servlet部件,因为拦截器一般不会用于action单元测试,而且如果你对上面的action半容器无关性对于单元测试和获取cookies的数据有疑惑,那么可以在拦截器中获取你想要的cookie,然后传入拦截器的另一个参数Value,action通过Value获取cookie,这样一来,明明半容器无关性的action测试,却可以通过拦截器来实现完全容器无关的action,这样一来,既满足性能需求,又满足测试需求。

    4 拦截器的天下。和webwork一样,IMVC中的拦截器是相当重要的组成部分。可以配置全局拦截器,路径拦截器,ajax链(这个以后会详解)拦截器,有趣的是,我们还有一个文件上传拦截器,IMVC是集成文件上传到,可以通过在action几行代码实现一个文件上传,而一般我们要更具自己的特性来处理上传完后的文件或者自定义的取名字,在或者做自己的缩略图等等。IMVC设计了一个文件上传拦截器,可以通过实例一个拦截器来实现这些功能,非常方便。


--InstantMVC:j2ee轻量级mvc框架

posted on 2008-06-10 17:38 刹那 阅读(704) 评论(0)  编辑  收藏 所属分类: 我的j2ee轻量级框架


只有注册用户登录后才能发表评论。


网站导航: