浅谈MVC与三层架构

  首先给你们引入下MVC的概念:

  MVC(Model View Controller)模型、视图以及控制器,它是一种较为普遍应用的结构设计模式。数据库

  模型:就是在MVC设计模式中须要被显示的数据。在一般状况下,该模型须要从数据库中读取数据、保存模型的状态等,提供数据的访问方法以及数据的维护。设计模式

  视图:就是用来显示模型中数据的用户界面,通常来书,视图就是HTML页面。架构

  控制器:就是用来处理对用户的输入或者交互命令,以便改变模型的状态,选择适当的视图来显示对应的模型数据。单元测试

  工做机制如右图所示:

  (1)用户向控制器发出请求。学习

  (2)控制器收到用户请求后,向模型请求得到相关的数据。测试

  (3)模型将对应的数据返回给控制器。spa

  (4)控制器将有关数据发送到指定的视图。设计

  (5)视图将数据呈现给用户。orm

  经过上面的介绍相信你们对于MVC也有了必定的了解和认识,那么MVC与原先咱们学习过的三层架构到底有哪些相同点,又有哪些不一样之处呢?blog

  MVC与三层的共同点:

  MVC与三层架构的触发点事相同的——分层,解耦。它们都作到了显示与数据的分离,大大下降了系统的耦合性。

  可是从专业角度来讲MVC与三层没有任何关系,三层是三层,MVC是MVC。惟一能把他们联系在一块儿的就是“三”这个字了,不过从初学者的角度把两者放在一块儿区分起来学习也更容易理解。

  MVC与三层的不一样点:

  能够说它们之间除了相同的剩下的全是不一样点。它们有着各自的工做机制详情请见下图:

  

  三层中的UI在MVC中被分解为View和Controller,BLL和DAL被合并为Model。另外在三层中虽然叫作三层架构,可是咱们能够根据须要分为多层。三层中也涉及到Model,可是三层里面的Model跟MVC中的Model彻底是两回事,三层中的Model是表实体,而MVC中的Model中包括业务逻辑和数据访问。

  MVC对于Web Form的特色:

  (1)易于单元测试

  (2)容易实施测试驱动开发

  (3)易于扩展和替换

  (4)支持Web Form中的有关特性

  (5)URL被映射到控制器

  虽然MVC对于Web Form有一些新的特性,可是MVC并不能替代传统的Web Form技术,这两种技术只是应用在不一样场景,具备不一样的优、缺点。不能片面的说那种技术高那种技术低,开发者须要根据本身的实际状况选择相应的技术开发项目。以上是我的经过查阅相关资料对MVC于三层架构之间的一些认识,有不足之处,请你们批评指正。