浅析 MVC 模式与三层架构的区别
三层架构和 MVC 是有明显区别的,MVC 应该是展现模式(三个加起来以后才是三层架构中的 UI 层)
三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻
辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。X X
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。X X
3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
MVC 是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的 UI 层,也就是说,MVC 把
三层架构中的 UI 层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过
实体来与界面层完成通话;而 C 层直接与三层中的 BLL 进行对话。
mvc 可以是三层中的一个表现层框架,属于表现层。三层和 mvc 可以共存。
三层是基于业务逻辑来分的,而 mvc 是基于页面来分的。
MVC 主要用于表现层,3 层主要用于体系架构,3 层一般是表现层、中间层、数据层,其中表现层又可以
分成 M、V、C,(Model View Controller)模型-视图-控制器X
曾把 MVC 模式和 Web 开发中的三层结构的概念混为一谈,直到今天才发现一直是我的理解错误。MVC
模式是 GUI 界面开发的指导模式,基于表现层分离的思想把程序分为三大部分:Model-View-Controller,
呈三角形结构。Model 是指数据以及应用程序逻辑,View 是指 Model 的视图,也就是用户界面。这两者
都很好理解,关键点在于 Controller 的角色以及三者之间的关系。在 MVC 模式中,Controller 和 View 同
属于表现层,通常成对出现。Controller 被设计为处理用户交互的逻辑。一个通常的误解是认为 Controller
负责处理 View 和 Model 的交互,而实际上 View 和 Model 之间是可以直接通信的。由于用户的交互通常
会涉及到 Model 的改变和 View 的更新,所以这些可以认为是 Controller 的副作用。
MVC 是表现层的架构,MVC 的 Model 实际上是 ViewModel,即供 View 进行展示的数据。 ViewModel
不包含业务逻辑,也不包含数据读取。
而在 N 层架构中,一般还会有一个 Model 层,用来与数据库的表相对应,也就是所谓 ORM 中的 O。这个
Model 可能是 POCO,也可能是包含一些验证逻辑的实体类,一般也不包含数据读取。进行数据读取的
是数据访问层。而作为 UI 层的 MVC 一般不直接操作数据访问层,中间会有一个业务逻辑层封装业务逻辑、
调用数据访问层。UI 层(Controller)通过业务逻辑层来得到数据(Model),并进行封装
(ViewModel),然后选择相应的 View。
MVC 本来是存在于 Desktop 程序中的,M 是指数据模型,V 是指用户界面,C 则是控制器。使用 MVC 的
目的是将 M 和 V 的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可
以分别用柱状图、饼图来表示。C 存在的目的则是确保 M 和 V 的同步,一旦 M 改变,V 应该同步更新。
MVC 如何工作
MVC 是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用 MVC 应用程序被分成三个
核心部件:模型、视图、控制器。它们各自处理自己的任务。
视图 V
视图是用户看到并与之交互的界面。对老式的 Web 应用程序来说,视图就是由 HTML 元素组成的界面,
在新式的 Web 应用程序中,HTML 依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们