首页 > 资讯 > > 正文

天天实时:MVC和普通三层架构的区别

来源:互联网 2023-05-31 06:38:16


(相关资料图)

三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层) 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。 1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。 MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过带陪实体来与界面层完成通话;而C层直接与三层中的蠢行蠢BLL进行对话。mvc可以是三层中的一个表现层框架,属于表现层。三层和mvc可以共存。 三层是基于业务逻辑来分的,而mvc是基于页面来分的。 MVC主要用于表现层,3层主要用于体系架构,3层一般是表现层、中间层、数据层,其中表现层又可以分成M、V、C,(Model View Controller)模型-视图-控制器 曾把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依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services. 如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。 模型M 模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。 控制器C 控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。模型Model 模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑. 实现具体的业务逻辑、状态管理的功能。 视图View 视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。 就是与用户实现交互的页面,通常实现数据的输入和输出功能。 控制器controller 控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。起到控制整个业务流程的作用,实现View层跟Model层的协同工作。3层架构指:表现层(显示层) 业务逻辑层 数据访问层(持久化)如果大家非要“生搬硬套”把它和MVC扯上关系话那我就只能在这里"强扭这个瓜"了即: V 3层架构中"表现层"aspx页面对应MVC中View(继承的类不一样) C 三层架构中"表现层"的aspx.cs页面(类)对应MVC中的Controller,理解这一点并不难,大家想一想我们以前写过的 Redirect,当然它本身就是跳转了一些链接页面,而MVC中的Controller要做的更爽,它控制并显示输出了一个视图。即然所起到的作用都是对业务流程和显示信息的控制,只不过是实现手段不同而已。 M 3层架构中业务逻辑层和数据访问层对应MVC中Model(必定View和Controller已找到“婆家”剩下Model只能是业务逻辑层和数据访问层了)为什么要使用 MVC 大部分Web应用程序都是用像ASP,PHP,或者CFML这样的过程化(自PHP5.0版本后已全面支持面向对象模型)语言来创建的。它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。MVC从根本上强制性的将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是无庸质疑的。 首先,最重要的一点是多个视图能共享一个模型,现在需要用越来越多的方式来访问你的应用程序。对此,其中一个解决之道是使用MVC,无论你的用户想要Flash界面或是 WAP 界面;用一个模型就能处理它们。由于你已经将数据和业务规则从表示层分开,所以你可以最大化的重用你的代码了。 由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。例如,很多数据可能用HTML来表示,但是它们也有可能要用Adobe Flash和WAP来表示。模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。 因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则。如果你想把你的数据库从MySQL移植到Oracle,或者改变你的基于RDBMS数据源到LDAP,只需改变你的模型即可。一旦你正确的实现了模型,不管你的数据来自数据库或是LDAP服务器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松耦合的构件。 对我来说,控制器也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。拿一个简单的登陆模块说,需求是你输入一个用户名、密码,如果输入的跟预先定义好的一样,那么就进入到正确页面,如果不一样,就提示个错误信息“你Y别在这儿蒙我,输入的不对!”。 V 这个小小的模块中,起始的输入用户名密码的页面跟经过校验后显示的页面就相当于View C 而这里还需要一个controller页面,就是用于接收输入进来的用户名密码,还有经过校验后返回的一个flg(此flg就是用于判断你输入的是否正确,而跳转到相应的页面的) M 最后还缺一个Model,那么就是你那个用于校验的类了,他就是处理你输入的是否跟预先订好的一样不一样的,之后返回一个flg。 这样就完全实现了逻辑跟页面的分离,我页面不管你咋整,反正我就一个显示,而controller呢也不管你Model咋判断对不对,反正我给你了用户名跟密码,你就得给我整回来一个flg来,而Medol呢,则是反正你敢给我个用户名跟密码,我就给你整过去个flgm 提供数据,数据之间的关系,转化等。并可以通知视图和控制器自己哪些地方发生了变化。 v 提供显示,能根据m的改变来更新自己 c 比如视图做了点击一个按钮,会先发给这个视图的控制器,然后这个控制器来决定做什么操作(让模型更新数据,控制视图改变) mvc是一个复合模式 mv,mc都是观察者模式 m内部的组件组合模式 vc之间是策略模式(可以随时更换不同的控制器)MVC模式是上世纪70年代提出,最初用于Smalltalk平台上的。 MVC是表现模式,是用来向用户展现的许多组建的一个模式(UI/Presentation Patten) MVC有三种角色: Model:用来储存数据的组件(与领域模型概念不同,两者会相互交叉) View:从Model中获取数据进行内容展示的组件。同样的Model在不同的View下可展示不同的效果。获取Model的状态,而不对其进行操作。 Controller:接受并处理用户指令(操作Model(业务)),选择一个View进行操作。MVC概述:协作 存在单向引用,例如Model不知道View和Controller的存在。View不知道Controller的存在。这就隔离了表现和数据。View和controller是单向引用。而实际中View和Controller也是有数据交互的。MVC的重要特点是分离。两种分离: View和数据(Model)的分离 使用不同的View对相同的数据进行展示;分离可视和不可视的组件,能够对Model进行独立测试。因为分离了可视组件减少了外部依赖利于测试。(数据库也是一种外部组件) View和表现逻辑(Controller)的分离 Controller是一个表现逻辑的组件,并非一个业务逻辑组件。MVC可以作为表现模式也可以作为建构模式,意味这Controller也可以是业务逻辑。分离逻辑和具体展示,能够对逻辑进行独立测试。MVC和三层架构 MVC与三层架构类似么? View-UI Layer | Controller-Bussiness Layer | Model-Data Access Layer 其实这样是错误的 MVC是表现模式(Presentation Pattern) 三层架构是典型的架构模式(Architecture Pattern) 三层架构的分层模式是典型的上下关系,上层依赖于下层。但MVC作为表现模式是不存在上下关系的,而是相互协作关系。即使将MVC当作架构模式,也不是分层模式。MVC和三层架构基本没有可比性,是应用于不同领域的技术。MVC模式与三层架构:ui (view)←(contorller)***********************bll (model) *********************** dal (model)
x
推荐阅读

天天实时:MVC和普通三层架构的区别

2023-05-31 06:38:16

隔夜外盘:美股涨跌不一 英伟达市值盘中突破万亿美元 国际油价大跌_实时焦点

2023-05-31 06:11:13

共同营造清新成长环境

2023-05-31 05:38:53

天天滚动:去除粘胶带残留的方法(去除粘胶带残留的五种方法)

2023-05-31 05:12:29

微头条丨6月1日北京世界公园调整营业时间和表演通知

2023-05-31 04:19:09

缙云烧饼制作方法及配料(缙云烧饼的制作方法)

2023-05-31 03:04:11

武田神社(关于武田神社介绍)

2023-05-31 01:57:07

618各家手机降价后最值得买手机整理

2023-05-31 01:38:36

当前简讯:当选德甲赛季最佳!贝林厄姆:难以置信,这是我最骄傲的奖项之一

2023-05-30 23:55:17

四川雅江县麻郎措镇森林火灾周边受威胁群众已全部转移|热门

2023-05-30 23:04:20
相关新闻

天天实时:MVC和普通三层架构的区别

2023-05-31 06:38:16

隔夜外盘:美股涨跌不一 英伟达市值盘中突破万亿美元 国际油价大跌_实时焦点

2023-05-31 06:11:13

共同营造清新成长环境

2023-05-31 05:38:53

天天滚动:去除粘胶带残留的方法(去除粘胶带残留的五种方法)

2023-05-31 05:12:29

微头条丨6月1日北京世界公园调整营业时间和表演通知

2023-05-31 04:19:09

缙云烧饼制作方法及配料(缙云烧饼的制作方法)

2023-05-31 03:04:11

武田神社(关于武田神社介绍)

2023-05-31 01:57:07

618各家手机降价后最值得买手机整理

2023-05-31 01:38:36

当前简讯:当选德甲赛季最佳!贝林厄姆:难以置信,这是我最骄傲的奖项之一

2023-05-30 23:55:17

四川雅江县麻郎措镇森林火灾周边受威胁群众已全部转移|热门

2023-05-30 23:04:20

每日速讯:杜康:黄金底部出现,全力做多!

2023-05-30 22:55:30

阿里再造阿里:菜鸟、盒马、阿里云“单飞” 谁是分拆第一股?_世界实时

2023-05-30 22:21:48

怎样安装仿宋gb2312字体(如何安装仿宋gb2312字体)

2023-05-30 21:28:51

当前快讯:从一道“拍黄瓜”看“职业打假人”,该不该“打”?

2023-05-30 21:11:25

神舟十六号3名航天员顺利进驻中国空间站

2023-05-30 20:44:13

当前视点!猪场夜间跳闸5000头猪热死,估计损失近千万,员工:猪价低,老板没请人值夜班

2023-05-30 20:00:26

新资讯:校花的贴身保镖txt_校花的贴身保镖txt

2023-05-30 19:45:03

支付宝紧急提醒!

2023-05-30 19:45:19

每日简讯:刘德华可不可以(可不可以 1990年刘德华演唱歌曲)

2023-05-30 19:12:58

欧洲央行官员:预计在6月和7月将再次加息

2023-05-30 18:50:14

全球观点:联翔股份:森隆投资拟减持公司不超3%股份

2023-05-30 18:37:07

环球百事通!iBookG4电池坏了怎么修(ibookg4)

2023-05-30 18:18:47

重点聚焦!太魔幻,为了存钱托人找关系…

2023-05-30 18:16:14

时代电气涨逾7%,近日获小摩增持10.49万股,总金额约344.09万港元

2023-05-30 18:11:18

全球热讯:【天眼问政·面对面访谈】7家金融机构进驻南明区“企业之家” 专员为企服务

2023-05-30 17:09:18

酷我简介(酷我资料)

2023-05-30 17:16:43

【世界新视野】专家建议劳动法中引入“离线权” 基本信息讲解

2023-05-30 16:47:20

办法与规定哪个效力高_办法和规定的区别

2023-05-30 16:36:36

政治与法律是黑刊_政治与法律

2023-05-30 16:02:15

环球新消息丨农业农村部:5月30日“农产品批发价格200指数”比昨天上升0.15个点

2023-05-30 15:53:35

泽泻的功效与作用及食用方法和禁忌_泽泻的功效与作用及食用方法

2023-05-30 15:35:22

今日精选:福建进一步加强房地产项目预售资金监管

2023-05-30 15:16:23

如何修补舌槽镶板_女生生日应该送什么礼物好手工

2023-05-30 14:53:58

巨量资金跑步进场 科创板创业板ETF被“扫货”_世界今头条

2023-05-30 14:27:13

天天报道:云的形成条件_云的形成

2023-05-30 14:27:43

坐字笔顺演示_坐字笔顺

2023-05-30 13:26:56

公司问答 | 酷特智能:公司的产品需求没有明显季度变化差异-世界观察

2023-05-30 12:48:57

马斯克赞中国航天成就:“远比大多数人意识到的更超前”

2023-05-30 12:13:34

卫生间英语单词怎么写_卫生间英语怎么说|当前时讯

2023-05-30 10:42:44

合肥倾力守护蓝天白云 一季度收获76个优良天

2023-05-30 10:23:50

海贼王官方情报:尾田实锤,夏琪是洛克斯的船员,实力不虚大将

2023-05-30 09:40:32

太平洋网络集团荣获“2023年百度电商优质生态合作伙伴”和“笃定共行奖”

2023-05-30 08:46:27

全球热推荐:有成都户口但工作和医保在外地可以买惠蓉保吗?

2023-05-30 08:08:27

病毒性丙肝_关于病毒性丙肝的介绍|环球信息

2023-05-30 07:23:37

当前简讯:诽谤罪刑事自诉找律师收费多少

2023-05-30 06:11:23

海贼王布鲁诺名场面(海贼王布鲁诺)

2023-05-30 05:16:13

汽车报道:同比增38.1%长安汽车集团公布6月销量

2023-05-30 04:45:31

李小鹏会见越南交通运输部部长阮文胜 就深化中越交通运输合作交换意见 全球观速讯

2023-05-30 03:44:13

检察机关依法分别对周茂非、赵磊、张卿槐、李浩提起公诉|最新资讯

2023-05-30 02:37:26

恒盛能源05月29日涨停分析-天天观点

2023-05-30 02:01:06

中欧班列长安号冷链进口恢复常态化

2023-05-30 00:35:52

每日热议!等长收缩和等张收缩的区别(等长收缩)

2023-05-30 00:02:10

全国首个无人岛岛主成“老赖” 宁波海岛无人竞拍2785万流拍

2023-05-29 23:52:55

全球时讯:水泥熟料烧成工艺与设备问答_关于水泥熟料烧成工艺与设备问答简述

2023-05-29 22:42:52

天天速读:深化改革丨屏南县甘棠乡:“三频共振”开启富村大门

2023-05-29 22:13:01

信息:SMM日评:贸易商低价出货意向低 镍铁买卖双方僵持

2023-05-29 21:29:53

李家超:做好风险管理 确保营商环境安全

2023-05-29 20:41:12

天天观热点:新手如何重装Win7系统不用U盘?

2023-05-29 20:16:26

以新视角观察、解释数据权益——“权利束”:数据权益的一种分析框架

2023-05-29 18:16:16

天天快看点丨2023年北京市西城区春季围棋段位赛开始报名啦!

2023-05-29 18:04:50

清波漾漾是什么意思简单一点_清波漾漾是什么意思 环球新要闻

2023-05-29 17:22:25

驾驶证过期几天开车怎样处罚_驾驶证过期几天怎么办|天天观点

2023-05-29 16:30:39

马斯克:比亚迪极具竞争力|环球通讯

2023-05-29 15:56:40

国泰君安:电力盈利维持高增 负荷新高行业或迎催化

2023-05-29 15:40:43

水波粼粼的意思_水波粼粼什么意思

2023-05-29 14:10:36

天天观点:2030年前,实现中国人首次登陆月球!

2023-05-29 13:50:38

中国工商银行etc的优点和缺点 中国工商银行etc

2023-05-29 12:20:39

世界速递!关于端午节的传说200字_端午节的传说200字优秀作文

2023-05-29 12:02:14

环球消息!神十五航天员乘组已在轨工作生活181天

2023-05-29 11:28:58

【秋金解盘】05.29 黄金日内走势分析与最新操作策略

2023-05-29 10:34:36

5月29日 9:36分 海南海药(000566)股价快速拉升 环球看点

2023-05-29 09:40:31

拜登刚刚发声!“已提交”

2023-05-29 09:06:19

追“云”逐“数”抢新机!河南数字亮点绽放中国数博会

2023-05-29 07:57:44

环球速看:丰子恺、齐白石等41名近现代大师书画作品不准出境

2023-05-29 06:58:49

【焦点热闻】三包是指哪三包

2023-05-29 05:52:16

天天快看点丨投资者对美国暂时达成的债务上限协议做出反应:不甚乐观

2023-05-29 04:55:13

《胜利女神Nikke》萌新开荒必备神罚 热头条

2023-05-29 01:52:51

河南宏力学校教师名单_河南宏力学校有限公司相关内容简介介绍

2023-05-28 23:58:30

美团正开发AI模型 王兴:人工智能将改变一切 环球速讯

2023-05-28 22:05:51

世界即时看!全省“5·26我爱路”主题宣传教育活动启动

2023-05-28 21:15:17

精彩看点:不精不诚不能动人是谁的名言_不精不诚不能动人的意思

2023-05-28 20:08:56

移动硬盘格式化需要多长时间_移动硬盘格式化需要什么工具

2023-05-28 19:11:42

“六一”出游推荐|在西乡塘邂逅一场童真、童心之旅吧!

2023-05-28 18:20:45

全球简讯:想买洗地机的用户必看:一文让你读懂洗地机

2023-05-28 17:12:51

实时焦点:那英演唱《掉了》全程开大,唱哭华晨宇!

2023-05-28 16:05:21

淄博短途自驾游去哪好玩,周末7个淄博周边贴近大自然的自驾游好去处推荐

2023-05-28 15:08:10

「图集」人气火爆!众多专业观察团参观2023数博会

2023-05-28 13:19:33

天天热议:西安西大街房产交易大厅将于6月2日起暂停办理业务

2023-05-28 12:28:41

环球看点!中国经济信心说丨人口高质量发展 从直面每个家庭的实际困难开始

2023-05-28 11:10:14

【全球新视野】十大健康食品是什么(十大健康食品是什么)

2023-05-28 10:32:10

世界动态:6月1日八一广场周边道路临时管控

2023-05-28 09:39:23

国产大飞机来了!C919今天开启首次商业载客飞行 天天微头条

2023-05-28 08:19:06

环球最资讯丨中国网络文学出海市场规模超过30亿元

2023-05-28 07:36:48

当前快播:中国地震台网正式测定:西藏山南市错那县发生3.6级地震

2023-05-28 06:23:31

每日速讯:中超最新积分榜:三镇1-2遭沧州逆转,8轮不败被终结,成都1-0南通开局不败,攀升次席

2023-05-28 05:06:42

芯潮Cintra是哪个国家的品牌_什么档次怎么样

2023-05-28 02:49:54

环球关注:空间鼠标是什么 空间鼠标

2023-05-28 01:18:23

一百五十九 正确与错误

2023-05-27 23:54:37

创行业记录 问界第10万辆量产车在两江新区下线 天天快资讯

2023-05-27 22:03:05

曝知名女星是女海王,与仨男顶流发生过关系,还玩剧组夫妻当小三

2023-05-27 21:08:36