【MVC】-mvc和三层架构的对比

前言

      最近小编在做的项目中接触了MVC三层架构,之前也有一个(UI-BLL-DAL)三层架构,都说一山不能容二虎,二者之间有什么区别和联系呢?让我们来一起来揭开这所谓的‘三层’架构的神秘面纱吧。

正文

1.  三层架构

        我们所普遍了解的三层架构(3-tier application)是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即是为了“高内聚、低耦合”的思想。 (内聚:一个模块内各个元素彼此结合的紧密程度;耦合:一个软件结构内不同模块之间互连程度的度量。)

        表现层(User Interface):展现给用户的界面,也就是用户在使用一个系统时的所见所得。

        业务逻辑层(Bussiness Logic Layer):负责关键业务的处理和数据传递

        数据访问层(Data Access Layer):实现数据访问,提供对数据库的增添、删除、修改、更新、查找等操作。

        

        使用三层结构主要是使项目结构更清楚、分工更明确,有利于后期的维护和升级,当数据库或用户界面发生改变时,不需要重新开发,只需要做简单的调整即可。

2. MVC

         MVC(Model-View-Controller,模型-视图-控制器模式),将应用程序分为三个主要组件:视图(View)、控制器(Controller)、模型(Model),它有两种理解,一种是表现模式、一种是架构模式。

      Model层:代表了应用程序的数据,就是业务流程/状态的处理以及业务规则的制定。业务模型的设计可以说是MVC最主要的核心。

      View层:代表用户交互界面,对于Web应用来说,可以概括为HTML界面,jsp页面。

      Controller层:处理用户与软件的交互操作的,控制提供模型中的任何变化的传播,确保用户界面与模型间的对应联系,将模型和试图匹配在一起,共同完成用户的请求。


   MVC最重要的一个特点是多个试图能共享一个模型,当需求多变,用越来越多的方式来访问应用程序的时候,用mvc就可以解决,并且将数据和业务规则从表示层分开,易于单元测试,可以最大化地重用代码。

3.三层架构和MVC的区别与联系

      概念不同:

          MVC是一种模式(观察者、策略、组合模式)),根据项目的具体需求来决定是否适用于该项目;三层架构是一种架构,可适用于任何一个项目。

          三层架构中没有定义Conroller,MVC也没有把业务的逻辑访问看成两个层。

          三层架构中的Model的概念和MVC中的Model概念不一样,三层架构中的Model是以实体类构成的,MVC中的Model是由业务逻辑与访问数据组成的。

      目的不同:

          MVC是基于页面来分的,为了实现Web系统的职能分工,主要用于表现层;三层是基于业务逻辑来分的,为了解耦,主要用于体系结构。

      层次不同:

          MVC是横向分层,各部分之间是相互协作关系,不存在上下关系;三层架构是纵向分层,典型的上下关系,上层依赖下层。

          MVC中的Model、View、Controller,这三个加起来才是三层架构中的UI层,而Controller直接与三层中的BLL进行对话。

      相同点:

            它们都有一个表示层。

            MVC表现层模式:(ASP.NET MVC是微软官方提供的MVC模式编写的ASP.NET WEB应用程序的一个框架)

            

总结

         MVC是一种模式,三层是一种架构,MVC和三层、模式和架构的区别你Get到了吗?