浅谈MVC设计模式
1 引言
随着软件开发技术的不断发展,在 Web 上的各种开发技术层出不穷,B/S 体系开始盛行,从 CGI到 Web 脚本语言 PHP,再到后来的 ASP.NET,J2EE 两大分布式企业平台出现,Web 开发得到了迅猛的增长,各种框架也不断运营而生能够更好的处理Web 大型复杂项目的开发。其中著名的 MVC 设计模式应用到 Web 开发中,对 Web 的松耦合有重要的
影响意义。使用目前成熟的 J2EE 平台技术结合MVC 模式依旧是企业 Web 项目的传统开发方式,Java Web 技术依然应用广泛。着重对现有软件开发体系结构体现 MVC 的优点以及基于 J2EE 和 MVC模式的 Web 开发进行研究。
2 软件开发体系结构
随着 Internet 的不断深入发展,软件开发体系结构从摆脱最初始繁琐的集成本地系统服务到 C/S(客户端/服务器)、B/S(浏览器/服务器)阶段,大幅度提高了编程效率,安全性,健壮性也得到了提升。但 Web 开发是当前互联网下的主要技术应用,逐渐摆脱了 C/S 结构中的程序一经改动就需要在所有客户端上进行修改的局面,使用 B/S 开发结构能很好的减少客户端的数据处理量以及较复杂的网络和硬件需求。
2.1 C/S架构
C/S是我们常见的服务器-客户机架构模型,C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。在C/S结构中,应用程序分为两部分:服务器部分和客户机部分。服务器部分是多个用户共享的信息与功能,执行后台服务,如控制共享数据库的操作等;客户机部分为用户所专有,负责执行前台功能,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。
2.2 B/S架构
B/S架构是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。
3 MVC设计模式
MVC是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
MVC 设计模式 [4] 主要运用在 J2EE 平台上,适合 Web 项目开发,使用 Model(模型)、View(视图)、Controller(控制器)对业务逻辑进行分离式的设计,能很好的进行代码的复用以及降低耦合度,使得网页上不会出现较复杂的 Java 代码逻辑实现,拥有较强的可维护性,并且给了 Java Web 很强的灵活度,使前端后端分离,开发人员各司其职,专注自己领域的研发,其中 JSP+Servlet+JavaBean 是最典型的 MVC 设计模式。
3.1 Model
模型部分通常由 JavaBean 组件来对应实现,是MVC 的核心,其内部集成了所有的属性操作如数据库的增删改查,用来封装数据功能,避免对相似的功能进行重写,Model [5] 存储数据并且负责接收从控制器传来的逻辑处理,通过处理后的数据返回给视图显示给用户,让用户能够得到所需要的数据处理。
3.2 View
视图部分在 Java Web 中主要由 JSP 来实现页面的显示以及界面渲染,是用户与服务器进行人机交互的界面,通过用户对表单 Form 的提交,让 JSP开始请求控制器 Servlet 进行对数据的更新操作处理,在 JSP 页面中只有 HTML 等超文本代码,真正的处理是提交给控制器之后开始执行的。
3.3 Controller
控制器 [6] 部分由 Servlet 进行实现,在其中进行用户在网页上的请求会传送到 Servlet,在接收了数据请求而后通过功能接口才能实现对数据部分也就是模型部分的处理,用户不能直接对数据进行操作,只能从控制器处请求的间接操作,从而完成对用户的需求处理。
4结语
MVC 模式的应用来开发基于 B/S架构的 Web 程序,能够很好的提升代码质量,优化耦合度,让各个部分得到了分离,使得 Web 程序的可维护性大幅度提高,并且使用经典的 JSP、Servlet、JavaBean 在如今看来也有广泛的应用,随着基于J2EE 框架的应用如 Struts2、SpringMVC 等范围不断扩大,了解其基本原理构成能够对系统开发层次更加清晰,也有许多值得借鉴的思维方法。
参考文献:
【1】基于 J2EE 和 MVC 模式的 Web 应用研究,柯 采
【2】基于MVC模式的教学管理电子信息系统设计,冉启武,皇金锋,董锋斌,蒋 军
【3】MVC 设计模式在 JavaWeb 开发中的应用研究,陆 丽