软件三层架构和MVC模式的区别

刚开始学习MVC模式的时候,很容易将两个混为一谈,觉得两者一个是中文描述,一个是英文描述(哈哈,很奇怪当时的想法),当深入了解后,发现根本不是一回事啊,遂将两者做一下总结:
1. 从概念上来说:
  三层架构是一个分层式的软件体系架构设计,适用于任何一个项目。而MVC是一种设计模式,它是根据项目的具体需求来决定是否使用这个设计模式 。从一个项目开始,首先需要进行架构设计,一般采用分层式的架构设计,即三层架构。在确定了架构设计之后,会根据具体的需求去考虑是否需要应用设计模式,比如说MVC模式,抽象工厂模式等等。即项目的开发是先确定软件的架构设计,再根据具体的需求决定是否使用相关设计模式,从这里可以看出三层架构和MVC设计模式不是一个等级的。

2. 从划分层次上说:
  ①三层架构将整个项目分为:
    表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候所看到的界面
    业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
    数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
  ②MVC即Model(模型),View(视图),Controller(控制)。

3.产生的背景:

①三层架构:所有应用程序都是用来处理数据的,程序的入口数据可以通过接口交互式输入或者从磁盘等地方读取,程序的输出结果作为现实或存储在磁盘上。上世纪九十年代之前,除了大型的系统外,应用程序读取处理并存储数据都是在一台机器上进行的。但是,从九十年代起,由于数据的爆炸性增长,一台机器上可以存储的数据不能满足应用程序的需求。于是,人们对原有程序进行了水平分层,将数据分离到数据库服务器上,应用程序从网络上读取数据。这就是 2-tiers 架构,客户端应用程序和数据库服务器。这种架构依然存在一些缺点,例如,无法缓解支持很多应用程序的客户端的负载; 客户端越来越复杂; 客户端和服务器之间频繁的通信对带宽要求高,限制了网络的大小等。总的来说就是,由于原有业务的复杂度提升,客户端和服务器端的职能需要调整,从而实现负载均衡,使系统具有良好的伸缩性。客户端的应用程序用于展示,是展示层,业务层进行逻辑运算的支持,数据层存储和操作数据。由于这种架构对原有程序进行了分层,不同的层运行在不同的机器上,所以可以非常自然地支持分布式开发。

②MVC设计模式:针对对用户界面进行管理的程序的职责混乱导致代码难以维护的情况,它将对数据的操作 M 与对视图V的操作分离开,用C 逻辑作为二者的粘合剂。

参考文章:https://www.zhihu.com/question/21851341

时间: 2024-10-12 02:38:31

软件三层架构和MVC模式的区别的相关文章

(转)浅析三层架构与MVC模式的区别

MVC模式介绍: MVC全名是Model ViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. MVC是表现层的架构,MVC的Model实际上是View Mod

三层架构与MVC之间的区别

文章转发自:http://www.admin10000.com/document/535.html 我们平时总是将三层架构与MVC混为一谈,殊不知它俩并不是一个概念.下面我来为大家揭晓我所知道的一些真相. 首先,它俩根本不是一个概念. 三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目. MVC是一个设计模式,它是根据项目的具体需求来决定是否适用于该项目. 那么架构跟设计模式有什么区别呢? 我们从接手一个项目开始,首先,我们需要进行架构设计,一般我们采用的就是分层式的架构设计,即我们

[转]三层架构与MVC之间的区别

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

三层架构和MVC模式

1.三层架构 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了"高内聚,低耦合"的思想. 1.表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得. 2.业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理. 3.数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添.删除.修改.更新.

java 三层架构与mvc模式的解释

三层架构是一种架构模式.分为: 持久层:完成内存数据和磁盘数据的转换,采用Dao模式,建立实体和数据库映射. 表--类 列--(数据库)属性 (ORM对象和关系的映射),主要目的是完成对象数据和关系数据转换 业务层:主要完成业务处理操作,采用事务脚本模式,将一个业务中所有的操作封装成一个方法,保证该方法中,所有的数据库操作,同时成功或者同时失败. 表现层:完成数据的展示和流程的控制,采用 MVC模式. 三层架构与MVC的关系: 表现层 ———–>mvc框架 业务层 ———–>service层

三层架构和 MVC的区别

三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层) 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了“高内聚,低耦合”的思想. MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器.视图.实体三个部分,控制器完成页面逻

asp.net中三层架构与mvc之区别?

对于标题中的问题,如果是没有同时接触三层架构和mvc的初级.net开发人员,想必一定会非常糊涂和混淆.关于此我也百度过N回,看过N多帖子和 回答,但几乎没有人能表述清楚.近期我从典型mvc+entityframework开发模式转型为三层架构的webform模式,才真正了解了二者的概 念. 一言以概之,采用mvc的同时,也可以采用三层架构,这二者没有直接关系. 三层架构中有一层UI层,或叫web层,我们所做的mvc项目都是依托于三层架构中的UI层而言的.mvc的概念主要是相对于webform中视

三层架构和MVC的区别

网络上大多数地方在说到三层架构和MVC的区别的时候,都说MVC是把三层架构中表现层分离出来,在进行进一步的划分.甚至在描述到这一块时,词语,标点符号都一模一样.但这种观点并不正确. 三层架构:1:数据访问层:主要是对非原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据库的操作,而不是数据,具体为业务逻辑层或表示层提供数据服务.2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些

三层架构和MVC

注:本文章内所有内容都来自互联网,本人主要是起了一个收集的作用 http://www.cnblogs.com/zhhh/archive/2011/06/10/2077519.html 又看到有人在问三层架构和MVC的关系,感觉这种问题有点教条化了.因为它们都在逻辑上将应用程序划为三块,凑了一个数字3,就有人非要把它们联系到一起了. 这两个东西我接触有几年了,有一点体会,表达一下: 三层是三层,MVC是MVC,它们毫无关系的. 三层是从整个应用程序架构的角度来分的三层(如果程序需要,还可以分多层)