在上篇博文《深入浅出学习Struts框架(一):一个简单mvc模式代码示例开始》中简单说了一下MVC模式代码的实现和MVC模式和三层架构的区别,并且留下一个问题—如何去掉TestServlet中的IF-Else语句块。
因为在TestServlet中出现了If-Else语句块,所以让程序变得不再灵活,让应付需求变化时变得笨拙。所以就承接上篇文章来重构一下TestServlet代码,主要是用继承多肽来进一步对TestServlet进行重构。虽然这一篇文章最后没有将if-else彻底去掉,但是比起上篇文章的代码显得更加灵活,也为下一篇彻底去掉If-else埋下伏笔。
下面进入重构阶段:
先看一下上篇文章的TestServlet代码:
首先我们看到了在每个语句块中都出现了给forward赋值,其实也就是给页面跳转的路径赋值,针对每个请求路径判断来赋值跳转路径。另外每个IF-Else语句块中都有业务处理,我们要把这些业务处理分别放到类里面,让职责更加单一,这样更加符合面向对象的思路。
就从这里我们开始重构,我们可以将这个跳转路径和业务逻辑封装起来。
既然封装,那么我们就抽象出来一个借口,主要完成一个方法,这个方法主要的功能就是要完成业务逻辑封装和路径跳转的返回。随后建立四个类,主要实现相应的增删改查的业务处理和处理之后的跳转路径返回。
代码如下:
接口Action:
增删改查实现类:
添加用户实现类:
删除用户实现类:
更新用户实现类:
查询用户实现类:
TestServlet类重构如下:
运行结果:
这样TestServlet类虽然没有彻底去掉If-Else,但是这样的代码变得更加简练,利用多肽实现业务逻辑处理和路径跳转返回。职责更加清晰,让维护变得更加轻松。
问题遗留:
If-else语句块没有彻底剔除,而且程序中依旧出现了过多的字符串,所以程序依旧是不灵活,而且字符串过多增加调试的复杂性。所以下一篇文章就把if-else语句块剔除,并且把字符串放到配置文件来用dom4j来动态读取。
我们离Struts框架越来越近,当我们把if-else和字符串剔除之后就会出现Struts框架的雏形。期待下一篇文章。
分享到:
相关推荐
MVC模式和Struts框架
以一个简单mvc模型开始,一步步重构,封装,最终实现struts的雏形,更加深入的理解struts的基本思想
精通Struts:基于MVC的JavaWeb设计与开发(孙卫琴)
电子工业出版社的,孙卫琴的《精通Struts:基于MVC的Java Web设计与开发》22.9Mb,清晰版,原来传的时候附件只能是5Mb,一共有五个,有点麻烦,现在能传10Mb的所以分成三块压缩再传了一遍,下载后把三个压缩文件的...
孙卫琴精通Struts:基于MVC的JavaWeb设计与开发课件,孙卫琴精通Struts,精通Struts:基于MVC的JavaWeb设计与开发
STRUTS 2:基于MVC的JAVA WEB应用开发实战——网络商店实例编程part1
这个资源是关于struts框架结构的,希望能够对大家学习有帮助
第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。第8章到第9...
深入浅出Struts2源代码,非常好的一本书,可能是现阶段最好的书。
书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。书中...
孙卫琴 精通Struts :基于MVC 的JavaWeb 设计与开发.pdf
基于MVC模式Struts框架研究与应用详解,对初学者很有用!!!
孙卫琴_精通Struts:基于MVC的Java Web设计与开发(第一部分)共分三部分 part01.rar----part07.rar 本人所发布的所有资源,请访问以下地址 ... 如有问题可随时联系我! 博客...
基于MVC的JavaWeb设计与开发源码
MVC原理(struts框架详解), Struts 质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑
Struts与Hibernate实用教程构建基于MVC模式的高效Java Web应用例子代码 (1),共10个例子
精通Struts:基于MVC的Java Web设计与开发(孙卫琴)2 此次是第二部分,10-21章
精通Struts:基于MVC的Java Web设计与开发 源代码,作者:孙卫琴 一个较年轻的女技术者,出过国,很懂得将技术写出来。 用7-zip压缩了。
讲述基于MVC模式的Struts框架中Ajax研究与应用..........