MVC与三层架构

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/P19777/article/details/96611709

MVC模型

它包含了 Model(模型),View(视图)和 Controller(控制器)。  

  1. Model,通常指的就是 JavaBean。  
  2. View,通常指的是 JSP 或者 HTML(即用于展示数据的资源,包括静态资源和动态资源)。  
  3. Controller,通常指的是 Servlet 或者 Filter,以及框架中封装的各类控制器。 

MVC模型的演进

1.model1模型

model1模型是早期javaee项目的一种模型,其中只包含两个部分。jsp和javaBean两个部分

优点:

1.结构简单,开发小型项目非常迅速

缺点:

1.jsp的职责过多,jsp兼顾展示数据和数据处理(也就是既当控制器,又当视图)

2.所有的逻辑代码都写在jsp中,导致代码重用性很低

3.由于展示数据的代码和部分的业务代码交织再一起,维护非常不方便

下图展示了model1模型的流程

由于业务的复杂性增加,慢慢的演进出来了model2模型

2.model2模型

mode2模型就是mvc模型的一种实现,他把处理请求和页面的展示进行分离,分离职责。此时的jsp已经纯粹的被用来进行数据的展示了,而处理请求交给控制器来进行,使每个部分充分独立,提高可重用性

优点:

1.责任清晰

2.组件独立,代码重用

3.责任清晰,代码维护方便,有利于二次开发

缺点:

1.数据展示响应较慢,jsp展示的时候需要转换为java,然后.class然后才进行展示

2.开发人员要有合理的设计

3.异步交互不方便

下图展示了model2的请求流程

 

 三层架构

三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。

 1.表现层(User Interface layer):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。

            表现层的主流框架有:struts1 ,struts2,,springMVC,webwork

 2.业务逻辑层(Business Logic Layer):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
             业务逻辑层的主流框架有:Spring

 3.数据访问层(Data access layer):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。
                数据访问层测主流框架有:Hibernate,Ibatis,以及Ibatis的升级版Mybatis

三层架构 与MVC的区别
三层是从整个应用程序架构的角度来分的三层(如果程序需要,还可以分多层)。

  三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑。

  比如将数据库操作代码封装到一层中,提供一些方法根据参数直接返回用户需要的相应数据,这样在处理具体的业务逻辑的时候,就不用关心数据的存储问题了。

MVC是在应用程序(BS结构)的视图层划分出来的不同功能的几个模块。

  MVC主要是为了解决应用程序用户界面的样式替换问题,把展示数据的 HTML 页面尽可能的和业务代码分离。MVC把纯净的界面展示逻辑(用户界面)独立到一些文件中(Views),把一些和用户交互的程序逻辑(Controller)单独放在一些文件中,在 Views 和 Controller 中传递数据使用一些专门封装数据的实体对象,这些对象,统称为Models。

  之所以说MVC和三层毫无关系,是因为它们二者使用范围不同:三层可以应用于任何语言、任何技术的应用程序;而MVC只是为了解决BS应用程序视图层各部分的耦合关系。它们互不冲突,可以同时存在,也可根据情况使用其中一种。

       虽然他们不一样,但是他们的目标是一样的,都是为了进行解耦,不过解耦的地方不一样。

如果硬要给他们对应的话,那么三层架构中的UI对应MVC中的view(jsp),都是用于显示以及获取界面的数据;三层架构中的BLL层和DAL层对应MVC中的Model(javabean)层都是用于处理上层传递来的数据以及从数据库获取的数据的;MVC中的Controller(Servlet)最多算是三层架构中的UI的一部分,也就我们常说的是Servlet。

如下图所示:

展开阅读全文

没有更多推荐了,返回首页