设计模式:设计自己的MVC框架
日期:2007年8月16日 作者: 查看:[大字体 中字体 小字体]-
源代码放在sharesources@126.com的邮箱的收件箱里,用户名:sharesource,密码:javafans
希望保留给有用的人,谢谢。
取这样一个标题太大,吸引眼球嘛@_@。
事实是最近读《J2EE设计模式》讲述表达层模式的那几章,书中有一个前端控制器+command模式的workflow例子,就琢磨着可以很简单地扩展成一个MVC框架。花了一个下午改写了下,对书中所述的理解更为深入。我想这也许对于学习和理解设计模式,以及初次接触struts等MVC框架的人可能有点帮助。因为整个模型类似于struts,我把它取名叫strutslet^_^。学习性质,切勿认真。
(一)完整的类图如下:
点击查看大图
1。前端控制器(FrontController):前端控制器提供了一个统一的位置来封装公共请求处理,它的任务相当简单,执行公共的任务,然后把请求转交给相应的控制器。在strutslet中,前端控制器主要作用也在于此,它初始化并解析配置文件,接受每个请求,并简单地把请求委托给调度器(Dispatcher),由调度器执行相应的动作(Action)。调度器把action返回的url返回给FrontController,FrontController负责转发。
2。Action接口:command模式很好的例子,它是一个命令接口,每一个实现了此接口的action都封装了某一个请求:新增一条数据记录并更新model,或者把某个文件写入磁盘。命令解耦了发送者和接受者之间联系。 发送者调用一个操作,接受者接受请求执行相应的动作,因为使用Command模式解耦,发送者无需知道接受者任何接口。
3。Dispatcher:调度器,负责流程的转发,负责调用action去执行业务逻辑。由调度器选择页面和action,它去除了应用行为和前端控制器间的耦合。调度器服务于前端控制器,它把model的更新委托给action,又提供页面选择给FrontController
4。ActionForward:封装了转向操作所需要信息的一个模型,包括name和转向url
5。ActionModel:解析配置文件后,将每一个Action封装成一个ActionModel对象,所有ActionModel构成一个map,并存储在ServletContext中,供整个框架使用。
(二)源代码简单分析
1。Action接口,只有一个execute方法,任何一个action都只要实现此接口,并实现相应的业务逻辑,最后返回一个ActionForward,提供给Dispacher调用。
- public interface Action {
- public ActionForward execute(HttpServletRequest request,ServletContext context);
- }
比如,我们要实现一个登陆系统(demo的例子),LoginAction验证用户名和密码,如果正确,返回success页面,如果登陆失败,返回fail页面:
- public class LoginAction implements Action {
- private String name="";
- public ActionForward execute(HttpServletRequest request,
- ServletContext context) {
- String userName=request.getParameter("userName");
- String password=request.getParameter("password");
- if(userName.equals("dennis")&&password.equals("123")){
- request.setAttribute("name", name);
- return ActionForward.SUCCESS; //登陆成功,返回success
- }else
- return ActionForward.FAIL; //否则,返回fail
- }
- [1] [2] [3] [4] [5] [6] 下一页
-
- 设计模式:设计自己的MVC框架 相关文章:
- ·高度优雅与魅力 Chanel时装设计
- ·Illustrator传统风格名片设计实例
- ·平安夜美丽蜡烛的装置设计欣赏
- ·圣诞节日花环花束设计欣赏
- ·创意设计:多姿多彩的自然标本玻璃砖
- ·Excel表格页码设置打印输出更直观
- ·3DSMAX造型设计之打造江南丝绸
- ·非主流 中性性感MM装扮设计欣赏
- ·3DSMAX造型设计之书法印刷效果
- ·德国女装verse设计欣赏
- 设计模式:设计自己的MVC框架 相关软件
- ·家庭装修设计完全手册(精简版)
- ·园林别墅设计效果图
- ·家居客厅设计效果图
- ·精美设计选集
- ·快易通Java程序设计
- ·李维的新书《Delphi 7高效数据库程序设计》
- ·中小网络建设一点通
- ·管理者形象设计手册
- ·论城乡建设发展战略(完整版)
- ·C++多范型设计
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:软件架构训练之层次及使用
精品推荐
热点TOP10
- ·Visual Studio 2005集成开发环境图解
- ·利用UML类图设计Java应用程序详解(1)
- ·软件工程的未来之路与我们的解决之道?
- ·VS2005(c#)项目调试问题解决方案集锦
- ·Atlas应用程序的调试技巧
- ·代码编写中的心理学与美学
- ·函数库、组件产品的测试方法
- ·IBM 建立商业解决方案中心
- ·IBM Rational推出SOAD策略
- ·通过RUP用例进行需求管理的可追踪性策略(1)
- ·软件项目在变化的需求中获得成功(1)
- ·界面需求的分析方法(1)
- ·探究需求管理的本质(1)
- ·利用数据绑定和模板创建Atlas应用程序
- ·BEA和Siebel联合提供CRM软件
- ·BEA新任亚太区总经理 曾任惠普软件部高管
- ·Java从老虎变野马 好事还是坏事?
- ·Web服务的期望与现实
- ·SAP:未来管理软件将像玩具
- ·面向服务的体系结构的成熟度模型
