我是刚学习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相当于。。。。(呵呵,剩下的你自己去想。。。)
原文:http://www.cnblogs.com/zhouxianghui/p/4373691.html