首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

《研磨struts2》 第一章 Struts2概述 之 MVC方式

2012-06-29 
《研磨struts2》 第一章 Struts2概述 之 MVC模式?图1.1一个模型对应多个视图模型负责输出的内容,而视图负责

《研磨struts2》 第一章 Struts2概述 之 MVC模式

?

图1.1一个模型对应多个视图

模型负责输出的内容,而视图负责输出的形式,模型不依赖于视图,模型与视图是解耦的。因此在修改视图,也就是显示方式的时候,不必关心模型,而只需要直接修改视图的展示方式即可。

3:MVC的组件关系图

MVC的组件关系如图1.2所示:

?

《研磨struts2》 第一章 Struts2概述 之 MVC方式

图1.2 MVC组件关系图

MVC的组件关系图描述了模型、视图、控制器这三个部分的交互关系,下面按照交互顺序来详细描述一下它们的交互关系:

(1)首先是展示视图给用户,用户在这个视图上进行操作,并填写一些业务数据

(2)然后用户会点击提交按钮,来发出请求

(3)视图发出的用户请求会到达控制器,在请求中包含了想要完成什么样的业务功能以及相关的数据。

(4)控制器会来处理用户请求,会把请求中的数据进行封装,然后选择并调用合适的模型,请求模型进行状态更新,然后选择接下来要展示给用户的视图。

(5)模型会去处理用户请求的业务功能,同时进行模型状态的维护和更新

(6)当模型状态发生改变的时候,模型会通知相应的视图,告诉视图它的状态发生了改变。

(7)视图接到模型的通知后,会向模型进行状态查询,获取需要展示的数据,然后按照视图本身的展示方式,把这些数据展示出来。

接下来就是等待用户下一次操作,再次从头轮回了。

1.1.3? MVC模式作用

在早期开发中,有一些程序员没有认识到MVC模式带来的好处,在开发的时候不遵守MVC模式。这样做的结果就是程序结构划分不明确,各个部分功能混乱,在业务功能发生变更时,无论是业务逻辑修改还是显示形式修改,都要修改很多的类,“牵一发而动全身”,导致软件的开发和维护效率低下,错误百出。

而遵循MVC模式来开发系统,就会极大的避免上述问题的出现。MVC模式的核心手段是解耦,MVC模式通过仔细的划分功能,把整个应用程序划分成模型、视图、控制器三个部分,然后严密控制三个部分之间的通信,从而得到一个结构清晰、功能分布合理、可重用、可扩展、可维护的应用程序。

因此,使用MVC模式,可以获得以下好处:

  • 低耦合性:在MVC模式中,模型和视图是解耦的,模型不会依赖于视图,而视图也仅仅是从模型中获取需要展示的数据,并不会与模型的逻辑处理相关联。
  • 更低的开发成本:由于MVC模式帮我们清楚的划分了各部分的职责,就可以让程序员各司其职,Java程序员只关心业务逻辑的实现,也就是模型部分;而界面程序员只关心页面展示,也就是视图部分即可。
  • 更好的可维护性:MVC模式划分出明晰的模型和视图部分,并使其解耦,在软件需求发生变更的时候,就可以各自独立的改变而不会相互影响,使得程序更容易维护和扩展。

    1.1.4? Model2模型中的MVC

    在Java的Web开发中,通常把Servlet+JSP+JavaBean的模型称为Model2模型,这是一个完全遵循MVC模式的模型,基本划分如下:

    • JavaBean作为模型,既可以作为数据模型来封装业务数据,又可以作为业务逻辑模型来包含应用的业务操作。其中,数据模型用来存储或传递业务数据,而业务逻辑模型接收到控制器传过来的模型更新请求后,执行特定的业务逻辑处理,然后返回相应的执行结果。
    • JSP作为表现层,负责提供页面来为用户展示数据,提供相应的表单(Form)来用于用户的请求,并在适当的时候(比如用户点击提交的按钮),向控制器发出用户请求来请求模型进行更新。
    • Serlvet作为控制器,用来接收用户提交的请求,然后获取请求中的数据,将之转换为业务模型需要的数据模型,然后调用业务模型相应的业务方法,请求模型进行更新,同时根据业务执行结果来选择要返回的视图,也就是选择下一个页面。

      Model2实现MVC的基本结构图如下图所示:

      ?《研磨struts2》 第一章 Struts2概述 之 MVC方式

      图1.3 Model2中的MVC

      那么,在用户发出一个请求后,Servlet+JSP+JavaBean模型基本的响应顺序是怎样的呢?

      当用户发出一个请求后,这个请求会被控制器Servlet接收到;Servlet将请求的数据转换成数据模型JavaBean,然后调用业务逻辑模型JavaBean的方法,并将业务逻辑模型返回的结果放到合适的地方,比如请求的属性里;最后,根据业务逻辑模型的返回结果,由控制器来选择合适的视图(JSP),由视图把数据展现给用户。

      ?

      ?

      私塾在线网站原创《研磨struts2》系列

      转自请注明出处:【http://sishuok.com/forum/blogPost/list/3984.html】

      欢迎访问http://sishuok.com获取更多内容

热点排行