j2ee设计模式浅谈(1)
首先j2ee设计模式还在不断的发展,我以下所说的设计模式全按上图中的来说,一来可以给大家一个更好直观的效果,二来我的目的也只是让各位了解j2ee设计模式,希望可以达到一个抛砖引玉的效果。
在还没有进入正题之前我还想说几句,大家不要为了用design pattern而去用design pattern,最好根据自己的需求去选择适合自己项目的design pattern。
j2ee有两大类重要的j2ee模式,一类由sun java center管理,定义15种模式,已经在《core j2ee patterns》书中发表,另一类是theserverside.com,这种类发表了大量的模式,最重要的见《ejb design patterns: advanced patterns,processes and idioms》下面我们把design pattern分层说明
1、 表示层模式,用于web组件层
2、 业务层模式,用于业务逻辑层
3、 数据集成层模式,连接db or eis
intercepting filter(截获过滤)
提供请求预处理和后处理的方案,定义灵活的体系结构,可以声明对截获请求和响应进行过滤,在servlet2.3中已经实现了filter功能,该模式主要用于记录日志、看用户有没有login等等。
front controller(前端控制器)
通过中央控制器提供请求管理和处理。控制器取代通常发生在表示层的请求,从而取代模型试图控制器(mvc ,model view controller)模式的控制器部分,前端控制器管理内容的读取,导航。如上图,可看出front controller是系统的一个入口,由他调用相应的逻辑bean,完成相应的处理工作后,更新视图view,在这里我还想提醒大家一下,有的应用把更新视图(view)的工作交给了相应的逻辑bean来完成。
view helper(视图帮助器)
将负责表示层的逻辑代码与其他的业务逻辑分开,表示格式放在视图组件中去,可能包括多个子组件,组成复杂视图。业务逻辑代码放在帮助器组件中。说白了就是让我们不要在视图(view)中写入业务逻辑代码,即少写一些scriptlet。
composite view(复合视图)
是从原子组件创建累计表示(view)的灵活方案。表示体系结构可以方便地组织基本视图组件,使表示灵活,还可以进行其他的工作,包括个性化和定制。
dispatcher view(派遣视图)
类似于service to worker模式,是由dispatcher组件与front controller和view helper模式组合而成。它与service-to-worker模式不同的是,这个模式在进行视图处理期间进行请求处理,因此更适合小型应用程序。
service to worker(服务/工人)
它是由dispatcher组件与front controller和view helper模式组合而成,先进行请求处理再进行视图处理,适合用于大型应用。
由于dispatcher view与service-to-worker有很多的相似之处,在此我做一下比较与说明,
1、 他们都是由表示层模式(front controller、view helper)组合而成,参与者是控制器、派遣器、视图帮助器的组合。
2、 在service-to-worker模式中控制器、派遣器的功能很大,除了要处理客户请求,视图跳转,派遣器还要从业务层读取数据,视图负责表示派遣器读取数据,将更多的逻辑和行为移到front controller、dispatcher、view helper中简化视图(view)。
3、 而在dispatcher view模式中控制器、派遣器的作用则很小,视图要负责从业务层读取内容和显示数据,它将更多的逻辑和行为交给了视图(view)使我们的视图变的很复杂,通常要用scriptlet或taglib完成控制器没有完成的任务。
闽公网安备 35060202000074号