MVC 设计模式
MVC 设计模式
MVC 是一种设计模式,至今被广泛使用(不仅仅是在 web 领域)。MVC 模式强制性地把应用程序的数据展示、数据处理和流程控制分开。MVC 把应用分成三个核心模块:模型(Model)、视图(View)和控制器(Controller),它们分别担当不同的任务。

视图
视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是并不进行任何的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。可以是一组 jsp 文件及 HTML 文件等。
模型
模型表示应用程序的业务数据和业务逻辑。一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了模型的可重用性。对于大型应用,业务逻辑通常由 JavaBean 或 EJB 组成。
控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击 Web 页面中的超链接和发送 HTML 表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。其功能就是将数据展示与业务逻辑分开,在 jsp model2 中由 servlet 担任。
MVC 处理过程
首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理;然后模型根据客户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来渲染模型返回的数据,并通过视图呈现给用户。
MVC 优点
在最初的 jsp 应用中,像数据库查询这样的 jdbc 代码和 HTML 表示层代码是混在一起的。好的做法是将 jdbc 代码从表示层分离开来,但这通常不是很容易做到的,它需要精心的设计和不断的尝试,MVC 从根本上强制性的将它们分开。尽管 MVC 程序需要一些额外的工作,但是带来的优点是毋庸置疑的:
- 首先,多个视图可以共享一个模型。如今,同一个 web 应用程序会提供多种用户界面(PC,PAD,WAP,IoT 等)。在 MVC 设计模式中,模型响应客户请求并返回响应数据,视图负责渲染并把它呈现给用户,业务逻辑和表示层分离。同一个模型可以被不同的视图重用,大大提高了代码的可重用性。
- 其次,模型是自包含的,与控制器与视图保持相对独立,所以可以很方便的改变应用程序的业务数据和业务规则。例如要把数据库从 Mysql 移植到 Oracle,只需要改变模型即可。一旦正确的实现了模型,无论数据来自何处,视图都会正确的显示它们。由于 MVC 的 3 个模块相互独立,改变其中一个不会影响其它,所以这种设计能够构造良好的松耦合的构件,大大提高了应用的维护性。
- 此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来联接不同的模型和视图去完成用户的需求,还可以为应用程序提供强有力的组合手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进行处理,然后选择适当的视图将处理结果显示给用户,大大提高了程序的扩展性。
MVC 适用范围
使用 MVC 需要精心的设计,并且由于它的内部原理比较复杂,所以需要花费一些时间去理解它。将 MVC 运用到应用中,会带来额外的工作量,增加应用的复杂性,所以 MVC 不适合小型应用程序。但对于开发存在大量用户界面,并且业务逻辑复杂的大型应用程序,MVC 将会使软件在健壮性和代码可重用性方面上一个新的台阶,会大大提高后期开发的效率。

浙公网安备 33010602011771号