MVC与三层架构区别之我见

      我是刚学习MVC和三层架构不久,通过学习,对MVC与三层架构也大概了解了一些,我来谈谈我对MVC与三层结构之间的区别。如果有什么不对的地方,烦请各位指出,谢谢!

      好了,回到正题。。。

      首先,我们可以先从逻辑上区分,举个不恰当的例子:就拿房屋来说,三层架构就像房屋的基本结构,MVC就像你理想的房子设计图

      接下来,我再具体谈谈三层结构和MVC。。。

     (一)三层架构

      1、通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)业务逻辑层(BLL)数据访问层(DAL)

      2、区分层次的目的即为了“高内聚,低耦合”的思想。

      3、表现层(UI):通常讲就是展现给用户的东西,用户能够看到的界面、视频、音频等,即用户操作系统时的所见所得。

      4、业务逻辑层(BLL):从字面上不难理解,就是对业务所需的功能和要求进行处理,并与数据库进行交互,从而将用户所需的数据通过表现层展示在用户面前。

      5、数据访问层(DAL):本层就是负责对数据库进行操作,包括对数据的增删该和查询等操作。

      (二)MVC

       1、MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controler)的缩写。

       2、MVC是一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法。

       3、模型(model):是业务提供者,决定了软件提供的功能,其内部可能是一些普通的类或实现某一功能的接口等。

       4、视图(view):就是用户看到的并能够与之交互的一些界面。

       5、控制器(controler):就是处理用户的操作并将最终结果反馈到用户所需界面的一组操作。

       最后,我们再来看看他们之间的具体区别。。。

       从上述的MVC和三层架构中不难发现,MVC貌似就是从三层架构中分出来的UI层,其实严格说MVC中model,view,controler这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;而controler层直接与三层中的BLL进行交互。

      我们再回到刚开始的那个房屋例子,我们可以想象:三层架构中表现层就是你所看到的自己设计的房屋样子,业务逻辑层就相当于建房屋所需的建筑学等知识,数据访问层相当于建房屋所需的材料。MVC就相当于你最终建成的房屋样子,而MVC中的model相当于。。。。(呵呵,剩下的你自己去想。。。)

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。