浅析MVC和三层架构

MVC与三层架构有很多相似的地方,很容易让人误解三层架构是MVC,或者MVC是三层架构,我也是其中之一,事实上它们是不同的,三层架构是一种架构方式,即把软件工程大致划分为三层,这是从整体的角度来划分的软件层次,这是一个软件工程的整体框架,而MVC是一种设计模式,是一种分离代码的思想,更侧重于前端、侧重于表现数据。

一、MVC与三层架构的异同

    1.不同点

       三层架构是程序设计的一种典型架构方式,确立项目后首先做的是对其进行架构设计,三层架构就是把应用程序的分层,从而降低各个模块之间的耦合。而MVC是程序的一种设计模式,应用程序只有确立架构后才根据需求决定是否要需要采用的一种设计模式。因此二者的区别也就显现出来了,三层架构是一种架构方式而MVC是一种设计模式(或者说是一种设计思想)。

       三层架构的分层模式是典型的上下关系,上层依赖于下层。但MVC作为表现模式是不存在上下关系的,而是一种相互协作关系。即使将MVC当作架构模式,也不是分层模式。严格来说,MVC和三层架构基本没有比较的意义,是应用于不同领域的技术。

浅析MVC和三层架构_第1张图片

2.相同点

MVC与三层架构虽然说实质是不同的,但是两者所实现的目标是相同的,都是为了降低软件的关联程度,即使应用程序达到”高内聚,低耦合“的目的。

   

二、MVC

MVC即 Model-View-Controller,它是一种GUI界面设计的主流模式,主流思想。共分为三层:模型层、视图层、控制层。MVC强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部分:模型、视图、控制器。这三个部分相互协调完成任务,并且每个部分工作时互不影响。

   M:模型层,用来实现数据表结构与应用程序实体对象对应、实现业务逻辑处理以及数据库的访问等等。

    V:视图层,实现与用户交互的界面,实现数据的输入输出功能。

    C:控制层,联系、控制模型层和视图层去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

   

MVC的工作方式,以实现用户登录为例,首先View层接受用户输入的账号和密码等数据,然后传递给Congtroller层,Controller层调用Model层的业务逻辑处理方法并返回一个结果给Controller层,最后Controller层判断是否登录成功弹出信息或调出登录的界面。

 

三、三层架构

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

    1.表现层(UI):实现应用程序的界面,从而实现用户进行交互的功能

    2.业务逻辑层(BLL):针对具体的业务需求而进行业务逻辑处理,直接对数据访问层进行操作

    3.数据访问层(DAL):该层直接对数据库进行一系列操作

 

四、总结

  • MVC与三层架构每有实质性的关系,它们只是比较相似而已。                
  • 如果非要说的话,MVC三个部分加起来后才是三层架构中的UI层,可以认为MVC把三层架构中的UI层再度进行了分化。

你可能感兴趣的:(浅析MVC和三层架构)