帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程
J2EE设计模式浅谈
作者:未知 发布时间:2005-03-12 来源:JSP天空网
J2EE设计模式浅谈
zhuam@studyjava.com
当我们纵观J2EE应用时,发现n-tier架构中已出现了许多新的技术和解决方法(design pattern)下面我参考 Sun Blueprints 的设计,简要的讲解design pattern下图来自
http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html




首先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完成控制器没有完成的任务。

模式的好处使得我们自己的系统具有好灵活性和可维护性,但同时也增加了系统的复杂性,下次我会接着说剩下的模式,不当之处请指正。
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·solaris上开发J2EE应用中文问题的  (2005-03-12)
 ·将J2EE平台提升到一个新的高度  (2005-03-12)
 ·J2EE design patterns  (2005-03-12)
 ·J2EE初学者需要理解的问题  (2005-03-12)
 ·对J2EE项目的一些体会  (2005-03-12)
 ·J2EE相关设计模式讨论  (2005-03-12)
 ·走向j2ee  (2005-03-12)
 ·正确利用J2EE的各种工具  (2005-03-12)
 ·J2EE 全面简介  (2005-03-12)
 ·J2EE疑难解决实例  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·谈谈JDBC
·JDBC专题介绍
·JDBC接口技术
·利用weblogic的POOL(连接池)连接
·Jsp中调用Oracle存储过程的小例子
·JSP数据库操作例程
·JSP数据库连接大全
·用连接池提高Servlet访问数据库的效
·一种简单JDBC连接池的实现
·数据库连接池Java实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统