MVC与三层架构的区别

1.三层架构的理解:三层架构通常将业务分为:数据访问层(对数据库中的数据的相关操作)、业务逻辑层(对数据库层的操作、业务的逻辑处理和对数据层的保护即数据的安全性)和显示层(将信息呈现在用户面前);

2.MVC是一个展现的模式。

   三层是基于业务来分的而MVC是基于页面来分的;MVC主要用于表现层,3层主要用于体系架构,3层一般是表现层、中间层、数据层,其中表现层又可以分成M、V、C,(Model View Controller)模型-视图-控制器;MVC是表现层的架构,MVC的Model实际上是ViewModel,即供View进行展示的数据。 ViewModel不包含业务逻辑,也不包含数据的读取。M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

  注释:MVC中的model与view是可以直接关联的不一定非要控制器来当中间桥梁,三层中的model一般不包括数据的读取。

      MVC的重要特点是分离,两种分离:

     View和数据(Model)的分离使用不同的View对相同的数据进行展示;分离可视和不可视的组件,能够对Model进行独立测试。因为分离了可视组件减少了外部依赖利于测试。(数据库也是一种外部组件);
  View和表现逻辑(Controller)的分离Controller是一个表现逻辑的组件,并非一个业务逻辑组件。MVC可以作为表现模式也可以作为构建模式,意味这Controller也可以是业务逻辑。分离逻辑和具体展示,能够对逻辑进行独立测试。

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

  三层可以应用于任何语言、任何技术的应用程序;而MVC只是为了解决BS应用程序视图层各部分的耦合关系。它们互不冲突,可以同时存在,也可根据情况使用其中一种。

posted @ 2014-09-05 13:47  琉璃彩虹  阅读(462)  评论(0编辑  收藏  举报