MVC和三层架构的不同

最近总是容易犯错误,比如最近的小组讨论我在讲分页,说在没有分页之前是分一页就去查一页,分了页之后是全部查出来存到页面中再一页一页的显示,完全的说反竟然还振振有词。也许是最近浆糊吃多了吧。再来说说一直以来我的一个错误吧,关于MVC和三层架构,你是否也混淆了呢?

在做项目中用到了新的知识MVC,在还没有很明白的情况下就开始在项目中用了,现在项目2.0都竣工了,该说说我对它的一些感受了。一开始还没有看完两集视频,就草草的上手了,视频中只了解了一下基本的结构。

回顾三层架构:

表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。

1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。

2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。

3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。

接触MVC:

MVC有三种角色:

Model:用来储存数据的组件,指要处理的业务代码和数据操作代码。

View:从Model中获取数据进行内容展示的组件。同样的Model在不同的View下可展示不同的效果。是一种视图。

Controller:接受并处理用户指令(操作Model(业务)),选择一个View进行操作。是Model和View的桥梁。

MVC和三层架构的区别:

很长一段时间,我对MVC的理解仅限于,认为它和三层架构一样,只不过三层架构更多关注于将业务和数据分开,而MVC更关注于将容易变动的界面和业务逻辑分开,同样是解耦的作用。这也是上一篇博客的体会。但是随着我们的经验和学习的深入,光知道MVC是分的哪三层就确实不应该了。那么我了来对比一下MVC和三层。

其实,我们知道分三层的目的是为了“高内聚,低耦合”的思想。

(1)结构不同。

三层架构是典型的上下级关系,上层依赖于下层。而MVC作为一种表现模式,是一种协作的关系,是平级的。它们用在不同的领域,可以说MVC可以作为一个三层架构中的UI层来展现界面。截取以前的博客中的两张图作为对比。

(2)二者的Model不同

在三层中也有Model,但是那是三层中的实体层,是三个层次之间的联系纽带。而MVC中的Model是指数据或程序逻辑,是一种页面级的数据,它接收的数据是从业务逻辑层处理好的数据。

(3)二者的分离不同

三层是B层的逻辑层分离了界面显示U层和直接与数据库打交道的D层。这是解除了显示和业务逻辑的耦合。

MVC中,Model是不知道View和Controller的存在的,这就隔离了表现和数据层,View和Controller是单向引用,View引用Controller的数据。这样分离了界面和数据。

 (4)应用场景不同

三层是基于业务逻辑来分的,我们会在软件工程中的架构设计中想到采用三层架构,这样实现解耦的目的,通过业务逻辑来划分层次。而mvc是基于页面来分的,当我们想要达到界面视图和数据的分离才用到MVC。

如果还在认为MVC就是三层架构那就是错误的,如果非要把它们用在一起的话,MVC可以单出来作为一层。其实项目中就是把MVC只作为一个表现层,是在客户端体现的。而MVC中的Controller是负责与B层逻辑层甚至是服务接口联系。学习MVC,让我知道,学习不能总是长时间的处于懵懂的状态,总要有一天你会突然醒悟,然后回顾自己所走过的路,带到那时没有悔恨才是最美。

以上的一些说法是在项目中误打误撞,然后看一些牛人的总结,最后有自己的一些看法,如果说的不准确,还请多多指教。

时间: 2024-10-05 05:06:06

MVC和三层架构的不同的相关文章

MVC和三层架构的比较

以前涉及到.NET做项目,脑袋里面只有一个概念,那就是三层,最近学习了一种新的架构思想,那就是ASP.NET MVC+EF+EasyUI,我们的项目已经进行了一半了,对这个架构算是有了初步的认识.这篇博文主要是笔者对MVC和三层架构的一些理解. MVC设计模式  VS  三层架构 一.概念不同 三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目. MVC是一个设计模式,它是根据项目的具体需求来决定是否适用于该项目. 那么两者有什么不同呢? 首先,当我们接手一个项目时,要设计软件的架构

从MVC和三层架构说到SSH整合开发

相信很多人都认同JavaWeb开发是遵从MVC开发模式的,遵从三层架构进行开发的,是的,大家都这么认同.但是相信大家都会有过这样一个疑问,if(MVC三层模式==三层架构思想)out.println(“请继续观看……”) 1.MVC(MODEL-VIEW-CONTROLLER)设计模式: 首先让我们了解下MVC(Model-View-Controller)的概念: MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写

MVC与三层架构区别之我见

我是刚学习MVC和三层架构不久,通过学习,对MVC与三层架构也大概了解了一些,我来谈谈我对MVC与三层结构之间的区别.如果有什么不对的地方,烦请各位指出,谢谢! 好了,回到正题... 首先,我们可以先从逻辑上区分,举个不恰当的例子:就拿房屋来说,三层架构就像房屋的基本结构,MVC就像你理想的房子设计图. 接下来,我再具体谈谈三层结构和MVC... (一)三层架构 1.通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL). 2.区分层次的目的即为

mvc和三层架构到底有什么区别

原文地址:http://zhidao.baidu.com/question/64782495.html?qbl=relate_question_0&word=MVVM MVC和三层架构,是不一样的. 三层架构中,DAL.BLL.WEB层各司其职,意在职责分离. MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的WEB层,也就是说,MVC把三层架构中的WEB层再度进行了分化,分成了控制器.视图.实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话:

从MVC和三层架构说到ssh整合开发-上

相信很多人都认同JavaWeb开发是遵从MVC开发模式的,遵从三层架构进行开发的,是的,大家都这么认同.但是相信大家都会有过这样一个疑问,if(MVC三层模式==三层架构思想)out.println("请继续观看--") 1.MVC(Model-View-Controller)设计模式: 首先让我们了解下MVC(Model-View-Controller)的概念: MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controlle

(转)MVC与三层架构区别

我们平时总是将三层架构与MVC混为一谈,殊不知它俩并不是一个概念.下面我来为大家揭晓我所知道的一些真相. 首先,它俩根本不是一个概念. 三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目. MVC是一个设计模式,它是根据项目的具体需求来决定是否适用于该项目. 那么架构跟设计模式有什么区别呢? 我们从接手一个项目开始,首先,我们需要进行架构设计,一般我们采用的就是分层式的架构设计,即我们的三层架构. 然后,在确定了架构以后,我们再根据项目的具体需求去考虑是否需要应用一些设计模式,比如是

浅谈MVC与三层架构

首先给大家引入下MVC的概念: MVC(Model View Controller)模型.视图以及控制器,它是一种较为广泛应用的结构设计模式. 模型:就是在MVC设计模式中需要被显示的数据.在通常情况下,该模型需要从数据库中读取数据.保存模型的状态等,提供数据的访问方法以及数据的维护. 视图:就是用来显示模型中数据的用户界面,一般来书,视图就是HTML页面. 控制器:就是用来处理对用户的输入或者交互命令,以便改变模型的状态,选择适当的视图来显示对应的模型数据. 工作机制如右图所示: (1)用户向

MVC与三层架构的区别

1.三层架构的理解:三层架构通常将业务分为:数据访问层(对数据库中的数据的相关操作).业务逻辑层(对数据库层的操作.业务的逻辑处理和对数据层的保护即数据的安全性)和显示层(将信息呈现在用户面前): 2.MVC是一个展现的模式. 三层是基于业务来分的而MVC是基于页面来分的:MVC主要用于表现层,3层主要用于体系架构,3层一般是表现层.中间层.数据层,其中表现层又可以分成M.V.C,(Model View Controller)模型-视图-控制器:MVC是表现层的架构,MVC的Model实际上是V

MVC和三层架构

从最开始写程序到现在,一路上听到架构这个词已经无数次了,在工作和圈子里也不停听到大家在讨论它,但是很多时候发现不少人对这个概念的理解都是很模糊的,无意间在知道上看到一个朋友的回答,感觉很不错,特转帖到此收藏. 首先,MVC和三层架构,是不一样的. 三层架构中,DAL(数据访问层).BLL(业务逻辑层).WEB层各司其职,意在职责分离. MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的WEB层,也就是说,MVC把三层架构中的WEB层再度进行了分化,分成了