前言
开发模型:
系统开发模型,即系统架构,是指整合应用系统程序大的结构。经常提到的系统结构有两种:三层架构与MVC。这两种结构既有区别,又有联系。但这两种结构的使用,均是为了降低系统模块间的耦合度(模块间的相关度和依赖度降低)。
传统的javaweb项目的系统开发模型大体经历了四个阶段:
纯JSP、JSP+JavaBean的Model1、MVC的Model2、MVC+三层架构
1、纯JSP
纯JSP开发模型中将所有业务处理、数据显示功能都由JSP页面完成。其缺点市很明显的:JSP页面中的代码结构很乱,显示功能与业务处理功能代码没有划分,维护与升级相当麻烦。
如图:
2、JSP+Javabean的Model1
这种开发模型将绝大多数业务处理功能交给了专门的JavaBean来完成,而JSP页面主要来完成数据显示功能。已经较“纯JSP页面”的开发模型有了很大改进。但该开发模型对于来自客户端的请求的解析,以及对JavaBean对象的选择与创建,仍然是由JSP页面通过Java代码块等来完成的。也就是说,JSP页面还承担着大量的请求解析,业务处理功能,如图:
3、MVC的Model2
MVC,即Model模型、View视图,及Controller控制器。
- View:视图,为用户提供使用界面,与用户直接进行交互。
- Model:模型,承载数据,并对用户提交进行计算的模板。其分为两类,一类称为数据承载Bean,一类称为业务处理Bean。所谓数据承载Bean是指实体类,专门用户承载业务数据的,如:student、User等。而业务处理Bean则是指Service或Dao对象,专门用于处理用户请求的。
- Controller:控制器,用于将用户请求转发给相应的Model进行处理,并对Model的计算结果向用户提供相应响应。
如图:
4、三层架构
三层架构是指:视图层View、服务层Service,与持久层Dao。它们分别完成不同的功能。
- View层:表现层、视图层,对于Web开发,也称Web层。用于接受用户提交请求的代码在这里编写。
- Service层:业务层、逻辑层,系统的业务逻辑主要在这里完成。
- Dao层:持久层、数据访问层,直操作数据库的代码在这里编写。DAO,即Data Access Object,数据访问对象。
如图:
为了更好的降低各层间的耦合度,在三层架构程序设计中,采用面向抽象编程。即上层对下层的调用,是通过接口实现的。而下层对上层的真正服务提供者是下层接口的实现类。服务标准(接口)是相同的,服务提供者(实现类)可以更换。
5、MVC+三成架构
所谓“MVC+三层架构”的开发模型,主要是讲MVC的业务处理Model分为了两层:Service层与Dao层,分别用于处理业务逻辑与持久化操作。
“MVC+三层架构”的开发模型,是传统的JavaWeb项目的最常用开发模型。
如图: