javaweb应用的MVC分层
让我们先来了解一下,MVC开发模式的组成吧!!!
看完这张图,你有什么看法,知道了这样的开发模式后,动手创建一个工程吧!!!
如图是根据上图创建的一个实例:
当然有很多的优点,相对于javaweb的初级开发,
优点:
- 耦合性低
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。
模型是自包含的,并且与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。如果把数据库从MySQL移植到Oracle,或者改变基于RDBMS数据源到LDAP,只需改变模型即可。一旦正确的实现了模型,不管数据来自数据库或是LDAP服务器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所以依据这种设计思想能构造良好的松耦合的构件。 - 重用性高
随着技术的不断进步,需要用越来越多的方式来访问应用程序。MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型,它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。由于已经将数据和业务规则从表示层分开,所以可以最大化的重用代码了。模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。 - 生命周期成本低
MVC使开发和维护用户接口的技术含量降低。 - 部署快
使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。 - 可维护性高
分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。 - 有利软件工程化管理
由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。控制器也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。
在后来学习JAVAEE的时候,会发现这种结构也会存在很多问题:
1.jsp页面中需要使用符号来嵌入很多的java代码,造成页面结构混乱
2.servlet和servlet负责了大量的跳转和运算工作
3.耦合紧密,程序复用性低
可以通过spring框架来很大程度上地解决,
通过AOP和IOC两大特性的加痴,把所有类之间的依赖关系完全通过配置文件的方式代替,同时把bean很好的管理到了容器中,使得耦合性大大降低,程序复用性提高
OVER!!!
陌生人,一起加油吧!!!
长路漫漫,JAVA为伴!!!