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交流群,一起学习

相关文章
|
12天前
|
存储 SQL 缓存
MySQL原理简介—2.InnoDB架构原理和执行流程
本文介绍了MySQL中更新语句的执行流程及其背后的机制,主要包括: 1. **更新语句的执行流程**:从SQL解析到执行器调用InnoDB存储引擎接口。 2. **Buffer Pool缓冲池**:缓存磁盘数据,减少磁盘I/O。 3. **Undo日志**:记录更新前的数据,支持事务回滚。 4. **Redo日志**:确保事务持久性,防止宕机导致的数据丢失。 5. **Binlog日志**:记录逻辑操作,用于数据恢复和主从复制。 6. **事务提交机制**:包括redo日志和binlog日志的刷盘策略,确保数据一致性。 7. **后台IO线程**:将内存中的脏数据异步刷入磁盘。
|
3月前
|
存储 前端开发 数据可视化
在实际项目中,如何选择使用 Flux 架构或传统的 MVC 架构
在实际项目中选择使用Flux架构或传统MVC架构时,需考虑项目复杂度、团队熟悉度和性能需求。Flux适合大型、高并发应用,MVC则适用于中小型、逻辑简单的项目。
|
3月前
|
存储 前端开发 调度
Flux 与传统的 MVC 架构模式区别
Flux是一种用于构建用户界面的架构模式,与传统的MVC架构不同,它采用单向数据流,通过Dispatcher统一管理数据的分发,Store负责存储数据和业务逻辑,View只负责展示数据,使得应用状态更加可预测和易于维护。
|
4月前
|
Kubernetes 调度 算法框架/工具
NVIDIA Triton系列02-功能与架构简介
本文介绍了NVIDIA Triton推理服务器的功能与架构,强调其不仅适用于大型服务类应用,还能广泛应用于各类推理场景。Triton支持多种模型格式、查询类型和部署方式,具备高效的模型管理和优化能力,确保高性能和系统稳定性。文章详细解析了Triton的主从架构,包括模型仓库、客户端应用、通信协议和推理服务器的核心功能模块。
144 1
NVIDIA Triton系列02-功能与架构简介
|
4月前
|
存储 分布式计算 Hadoop
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
81 2
|
4月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
72 0
|
5月前
|
设计模式 前端开发 数据库
理解mvc架构
mvc架构
53 4
|
6月前
|
开发者 前端开发 Java
架构模式的诗与远方:如何在MVC的田野上,用Struts 2编织Web开发的新篇章
【8月更文挑战第31天】架构模式是软件开发的核心概念,MVC(Model-View-Controller)通过清晰的分层和职责分离,成为广泛采用的模式。随着业务需求的复杂化,Struts 2框架应运而生,继承MVC优点并引入更多功能。本文探讨从MVC到Struts 2的演进,强调架构模式的重要性。MVC将应用程序分为模型、视图和控制器三部分,提高模块化和可维护性。
59 0
|
6月前
|
存储 前端开发 数据库
神秘编程世界惊现强大架构!Web2py 的 MVC 究竟隐藏着怎样的神奇魔力?带你探索实际应用之谜!
【8月更文挑战第31天】在现代 Web 开发中,MVC(Model-View-Controller)架构被广泛应用,将应用程序分为模型、视图和控制器三个部分,有助于提高代码的可维护性、可扩展性和可测试性。Web2py 是一个采用 MVC 架构的 Python Web 框架,其中模型处理数据和业务逻辑,视图负责呈现数据给用户,控制器则协调模型和视图之间的交互。
50 0
|
6月前
|
设计模式 前端开发 数据库
哇塞!Rails 的 MVC 架构也太牛了吧!快来看看这令人惊叹的编程魔法,开启新世界大门!
【8月更文挑战第31天】《Rails中的MVC架构解析》介绍了Ruby on Rails框架核心的MVC设计模式,通过模型(Model)、视图(View)和控制器(Controller)三部分分离应用逻辑,利用Active Record进行数据库操作,ERB模板渲染视图,以及控制器处理用户请求与业务逻辑,使代码更易维护和扩展,提升团队开发效率。
100 0