MVC模式学习

 

MVC简介

 

MVC模式(Model–View–Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。它强制性的使应用程序的输入、处理和输出分开。它们各自处理自己的任务。

M:数据模型(Model),负责封装应用的状态,并实现应用的功能。通常又分为数据模型和业务逻辑模型,数据模型用来存放业务数据,比如订单信息、用户信息等;而业务逻辑模型包含应用的业务操作,比如订单的添加或者修改等。

V:视图展现(View),界面,用来将模型的内容展现给用户,用户可以通过视图来请求模型进行更新。视图从模型获得要展示的数据,然后用自己的方式展现给用户,相当于提供界面来与用户进行人机交互;用户在界面上操作或者填写完成后,会点击提交按钮或是以其它触发事件的方式,来向控制器发出请求。

C:控制器控制器(Controller),用来控制应用程序的流程和处理视图所发出的请求。当控制器接收到用户的请求后,会将用户的数据和模型的更新相映射,也就是调用模型来实现用户请求的功能;然后控制器会选择用于响应的视图,把模型更新后的数据展示给用户。

简单介绍一下MVC的发展历史:

MVC开始是存在于桌面程序中的。

模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。

后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的语言(Asp.net 与PHP等)和与开发者的欢迎。

对于我们Java开发模式来说大概有两个阶段:

阶段一:Model 1。被叫做JSP开发模式,基于Jsp+JavaBean,以JSP为中心(JSP Centric)的设计的模型。

阶段二:Model 2。可以叫做以Servlet为中心,基于Jsp+Servlet+JavaBean。此模式适合于团队开发,用此模式开发,速度相对较慢但可维护性高。

而我们Java开发中最典型的MVC就是Model 2的模式,Jsp+Servlet+JavaBean          

             

JSP优点:开发前台界面方便,做UI开发容易

      缺点:业务处理不方便

Servlet优点:强于业务逻辑开发,性能快, 安全性高。

    缺点:显示不方便

JavaBean优点:可重复调用,封装请求中参数,进行相应的处理

 

MVC的几个优点:

  1. 降低程序代码的耦合度
  2. 组件重用性高
  3. 部署快,开发快(开发人员各司其职)
  4. 可维护性高

 

MVC的几个缺点:

  1. 没有明确的定义
  2. 不适合开发小项目
  3. 添加了系统结构与实现的复杂性

 

在我们目前学习的框架中Struts2就是一个典型的MVC模式的框架。

从视图角度(View):主要由JSP建立,struts自身包含了一组可扩展的自定义标签库(TagLib),可以简化创建用户界面的过程。

从模型角度(Model):模型主要是表示一个系统的状态(有时候,改变系统状态的业务逻辑操作也划分到模型中)。

从控制器角度(Controller)在Struts framework中, Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。

 

而在外面的公司很多使用Spring MVC,在应聘时也会要求熟练使用Spring MVC。

Spring MVC是一个基于“MVC模式”的WEB框架,它解决WEB开发中常见的问题(参数接收、文件上传、表单验证、国际化、等等),使用非常简单,Spring MVC作为Spring中的一个模块,可以与Spring无缝集成。

 

posted @ 2017-04-23 10:39  会飞的鱼摆摆  阅读(127)  评论(0编辑  收藏  举报