MVC模式(部分知识)

来源:互联网 发布:临朐一中知乎 编辑:程序博客网 时间:2024/05/16 08:56

什么是MVC

  • MVC模式是一种软件开发模式。

* M是Model,表示模型,程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计 (可实现具体的功能)。

* V是View,表示视图,界面设计人员进行图形界面设计。

* C是Controller,表示控制器,负责转发请求,对请求进行处理。


---------------------------------------------------------------------------

MVC的分层

  • 模型--"数据模型"用于封装与应用程序的业务逻辑相关的数据及对数据的处理方法。"模型"有对数据直接访问的权力,例如对数据库的访问。"模型"不依赖"视图"和"控制器",也就是说,模型不关心它是否被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可了解在数据模型上发生的改变。
  • 视图--视图层能够实现数据有目的的显示(理论上,这是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型,因此应该事先在被它监视的数据那里注册。
  • 控制器--控制器起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。"事件"包括用户的行为和数据模型上的改变。


-----------------------------------------------------------------------------


如何使用MVC

  *采用MVC模式,所有问题的考虑方式基本完全相同,分3步。

①任何一个功能都是先从用户的角度考虑,考虑假设这个功能写完了,用户如何使用它。通常需要考虑两个方面,用户如何提交请求,系统如何向用户展示结果。可理解为通常意义上的输入和输出。输入和输出主要使用JSP页面来完成,可根据输入输出功能所涉及的元素设计JSP页面。也是就是MVC模式中的V部分的设计。

②考虑功能如何实现,所有的功能最后都是通过方法来实现。考虑两个方面:首先考虑这个方法应该属于已存在的某个模型的方法,还是不属于任何已经存在的模型,对于前者只需要在原有模型中增加方法即可,对于后者需要创建新模型;然后考虑这个方法的定义,包括方法的名字、参数、返回值、异常和执行过程。这个过程属于MVC模式中M部分的设计。

③考虑输入界面、功能和输出界面间如何关联。需要编写控制器,也就是MVC模式中C部分的设计。控制器的设计需要考虑如下几方面信息:

*需要从输入界面获取哪些信息,也就是视图层向控制层传递的信息;

*需要调用JavaBean的哪个方法,需要传递什么信息,属于控制层向模型层传递的信息;

*是否需要把模型执行的结果传递给显示界面,包含模型层向控制层传递信息和从控制层向视图层传递信息两个方面;

*根据模型的执行结果选择界面对用户进行响应。


-----------------------------------------------------------------------------

 

MVC模式中值的传递


传值包括两个方面:

*视图层和控制层之间值的传递

  *从视图层到控制层

     @ 通过表单

     @也可采用在请求字符串之后使用问号加参数的方式(如:http://127.0.0.1:8080/bookstore/login?userid=zhuansan&Userpass=lisi)

     @控制层通过getParameter和getParameterValue获取。

  *从控制层到视图层

     @控制层把信息保存到request中,setAttribute方法

     @视图层使用表达式语言获取控制层保存的信息   

*控制层和模型层之间值的传递

  *从控制层向模型层传递信息,通常采用如下3种方式之一:

     @在调用构造方法的时候传递;

     @调用专门的初始化方法赋值或者通过调用setter方法赋值;

     @通过业务方法的参数传递。

  *从模型层到控制层传递信息,通常都是通过方法的返回值



原创粉丝点击