MVC架构思想简介

简介: MVC架构思想简介

作为程序员,也许MVC架构是我们最常听到的术语之一。所谓MVC是Model View Controller的缩写,意即模型-视图-控制器。


也许直接从字面上来理解还是会感到有些模糊,大家不要着急,请先跟我看一个例子,相信在看完例子之后,你会对MVC有个比较整体的认识。


1 word图表例子


在大家电脑都装有word软件吧


1.1 打开word,选择:插入=》图表=》柱状图=》簇状柱状图,确定。




1.2 点击确定后,会生成一个柱状图图表

上方是柱状图数据表格,下方是柱状图,柱状图准确的反映了表格数据。




1.3 然后点击选中整个柱状图,右键选择更改图表类型=》折线图




1.4 我们比较一下柱状图和折线图,其实,它们所对应的数据并没有改变,真正改变的是数据的表现形式,即柱状图和折线图,并且,当修改excel中的数据时,统计图会随着数据而改变。数据是唯一的,而数据可以用柱状图,折线图等形式来展现。


所以,我们把excel中的数据类比于模型,柱状图,折线图类比于视图,而将excel这样的编辑数据的工具类比于控制器,即模型-视图-控制器,模型是数据,视图是数据的展现方式,控制器负责模型和视图之间的交互


小豆君刚刚举的是word中的例子,其实,在我们的生活中这样的例子也比比皆是。


例如,各种手机app,经常让用户更新版本,当打开新版本时,往往会看到一个更新颖,人性化,便捷的用户界面,而用户的资料信息,关注信息等都保持改变,只是数据的展示方式被改变了。讲到这里,我想大家对MVC也有了个整体的认识了吧。


2 数据唯一性


我们都知道,计算机最主要的功能就是储存数据和计算数据。而计算机中的数据就是0和1,因为计算机只认识0,1。它并不能像人一样可以认识十进制数,认识很多不同的事物,但是人却不认识0和1,或者说很难读懂0和1表示的事物。这是人和计算机最大的差别之一。


然而,计算机是要为人类服务的,它必须将它所认识的0和1转化成人类所熟知的数字,字符,图表等具体表象。这些表象能够形象的,或者说更加直观的为研究人员提供线索或是某种规律。


例如,我可以通过公众号后台查看到粉丝在全国的分布情况,或是男女比例,手机型号等数据。


如果公众号关联了两份不同的数据,在全国各地的粉丝总共1000人,而男女总和是900(850+50),那从我的角度来看,我该选择相信哪条数据。所以公众号的数据分析功能也就失去了意义,数据的可信度也会大打折扣。


同理,在软件开发中,如果你界面显示了两份数据,即使你很小心的维护着两份或多份数据保持同步,无论是存在缓存,文件或数据库中,但你也无法保证数据会时刻保持同步(例如,设计好的两张表中保存了同一份儿数据,当一张表的数据被更新,而另一张表却忘记更新),而且这种情况对于初学者来说也是时有发生。


所以保持数据的唯一性是一个非常重要的话题,而MVC就是这样的一个解决方案,让数据和展示数据的界面相分离,所有数据的更改就通过控制器来实现。


数据的唯一性这一标准大家一定要深深地刻在脑海中,无论你是使用MVC架构,C++中的const,设计模式中的单例模式等,都是用来保持数据唯一的有效手段,如果你能把这一标准保持好,我想你将会受益无穷。


好的,关于MVC的简单介绍就到这里了,下节小豆君将分享Qt中的MVC架构,帮大家理清MVC的来龙去脉,敬请期待吧!


更多分享请关注微信公众号:小豆君Qt分享,只要关注,便可加入C++\Qt交流群,一起学习

相关文章
|
19天前
|
存储 并行计算 安全
我们自己的芯片指令集架构——龙芯架构简介
我们自己的芯片指令集架构——龙芯架构简介
68 6
|
19天前
|
Web App开发 JavaScript 前端开发
【热门话题】WebKit架构简介
WebKit,开源浏览器引擎,支撑Safari、Chrome等,以其高效、稳定和跨平台特性著称。文章介绍了WebKit的起源、模块化设计,重点讲解了WebCore的DOM、CSSOM、Render Tree、布局、绘图与合成,以及JavaScriptCore的解析、编译和垃圾回收。WebKit2的多进程架构提升了稳定性和安全性。理解WebKit有助于优化网页性能和参与社区贡献。
28 0
|
19天前
|
安全 数据管理 中间件
云LIS系统源码JavaScript+B/S架构MVC+SQLSugar医院版检验科云LIS系统源码 可提供演示
检验科云LIS系统源码是医疗机构信息化发展的重要趋势。通过云计算技术实现数据的集中管理和共享可以提高数据利用效率和安全性;通过高效灵活的系统设计和可扩展性可以满足不同医疗机构的需求;通过移动性和智能化可以提高医疗服务的精准度和效率;通过集成性可以实现医疗服务的协同性和效率。因此,多医院版检验科云LIS系统源码将成为未来医疗机构信息化发展的重要方向之一。
28 2
|
10天前
|
前端开发 JavaScript 中间件
基于最新koa的Node.js后端API架构与MVC模式
基于最新koa的Node.js后端API架构与MVC模式
23 1
|
17天前
|
XML 前端开发 Android开发
Android架构设计——MVC,滴滴 战略 面试
Android架构设计——MVC,滴滴 战略 面试
|
17天前
|
XML 前端开发 Android开发
Android架构设计——MVC(1),Android多进程从头讲到尾
Android架构设计——MVC(1),Android多进程从头讲到尾
|
19天前
|
前端开发 Java 数据库
MVC架构简述
MVC架构简述
20 4
|
19天前
|
存储 前端开发 Java
软件体系结构 - 架构风格(13)MVC架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(13)MVC架构风格
40 0
|
19天前
|
前端开发 Java PHP
信息系统架构模型(1) MVC
信息系统架构模型(1) MVC
26 0
|
19天前
|
XML 前端开发 测试技术
安卓架构模式:MVC、MVP、MVVM及更多
【4月更文挑战第13天】本文探讨了安卓应用开发中的常见架构模式,包括MVC、MVP和MVVM,以及VIPER和Clean Architecture。MVC分离关注点,易于理解,但安卓不直接支持。MVP通过呈现器实现更清晰的分层和便于单元测试。MVVM利用数据绑定简化UI逻辑,适合声明式编程。开发者应根据项目需求、团队技能和维护周期选择合适架构,随着工具和框架的进步,未来将提供更多模块化、可测试性和敏捷性的解决方案。