本篇目录

  • MVC 模式
  • 1.什么是 MVC
  • 模型(Model)
  • 视图(View)
  • 控制器(controller)
  • 2.为什么要用 MVC
  • 看着舒服
  • 写着容易
  • 改着省心
  • 3.设计模式与框架模式
  • 4.MVC 实践


MVC 模式

MVC 模式是一种软件框架模式,被广泛应用在 JavaEE 项目的开发中。MVC 模式很好理解,但也十分重要,在今后的 Web 应用开发中,我们都离不开它。

之前,我们学习过了 Servlet、JSP,看起来它们都可以独立完成许多功能,却各有特点,MVC 就提供了一种扬长避短,双剑合璧的方法。

1.什么是 MVC

MVC 即模型(Model) 、视图(View)、控制器(Controller)。

模型(Model)

模型是用于处理数据逻辑的部分。

所谓数据逻辑,也就是数据的映射以及对数据的增删改查,Bean、DAO(data access object,数据访问对象)等都属于模型部分。

视图(View)

视图负责数据与其它信息的显示,也就是给用户看到的页面。

html、jsp 等页面都可以作为视图。

控制器(controller)

控制器是模型与视图之间的桥梁,控制着数据与用户的交互。

控制器通常负责从视图读取数据,处理用户输入,并向模型发送数据,也可以从模型中读取数据,再发送给视图,由视图显示。

前面学到的 Servlet 便可以用作控制器。

2.为什么要用 MVC

窃以为,MVC 模式有以下三大好处。

看着舒服

前面学习 Servlet 和 JSP 的时候,我们发现这俩东西都是功能和显示混着来,可读性很差,而使用 MVC,Servlet 里都是逻辑代码,JSP 都是显示代码,一目了然。

写着容易

MVC 模式有利于人员的分工合作,不同的开发人员可各自发挥专长,同时开发不同的部分。

改着省心

MVC 可以在一个时间内专门关注一个方面,从而让应用程序的测试与迭代更加方便。所以,复杂的应用程序大都会选择使用 MVC 模式。

上述好处,用一句行话来说,就叫 “高内聚 低耦合”

3.设计模式与框架模式

在搜集资料的时候发现很多地方把 MVC 称为一种 “设计模式”,一开始我觉得没什么毛病,从字面上完全说地通,但是仔细一想,“设计模式” 这个词是一个术语,是指工厂模式、单例模式这些东西,是不能乱用的。而 MVC,应该被称作是 “框架模式”

那么两者有什么区别呢?

设计模式,是针对 “代码” 的,如同修筑房屋时砖瓦的层叠方式,是软件开发的基石。

框架模式,是针对 “框架” 的,是面向某些应用场景的可复用的方案,如同医院、商场等不同功能建筑的布局,是比设计模式更宏观一些的概念。

在今后的文章中,我将与大家共同学习当前的主流框架。

4.MVC 实践

在 JavaEE 中,最为经典的 MVC 模式即

Bean(Model) + JSP(View) + Servlet(Controller)

假如有一个需求:实现编辑网页上的信息并与数据库同步

在实现上,可以分为以下几步:

  1. 用 Bean 来映射数据表,并编写好 DAO
  2. 用负责查询的 Servlet 调用 DAO 查询需要编辑的内容并发送给用于编辑的 jsp 页面
  3. 把编辑页面进行修改后的值,再提交给负责更新的 Servlet 调用 DAO 更新数据库
  4. 使用另一个负责查询的 Servlet,把查询出来的更新过的内容发送给负责显示的 JSP

这个部分本来打算自己做一遍,但之前推荐的 Java 学习网站 How2J 上已经有很好的实践教程,我就不费劲了,直接戳下面的链接:

How2J 的 MVC教程

只是一个小练习,看过前面的内容的话一会儿工夫就可以做完。