MVC框架

Unity框架——MVC框架 前言——什么是MVC框架MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面 显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于 映射传统的输入、处理和输出功能在一个逻辑的图形化用... 阅读详情

    MVC (Model View Controler)本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

 

    MVC强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。

 

    视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services.

    模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

    控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。

 

现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。 

 

MVC带来的好处:

    多个视图能共享一个模型,正如我所提及的,现在需要用越来越多的方式来访问你的应用程序。对此,其中一个解决之道是使用MVC,无论你的用户想要Flash界面或是 WAP 界面;用一个模型就能处理它们。由于你已经将数据和业务规则从表示层分开,所以你可以最大化的重用你的代码了。

    由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。例如,很多数据可能用HTML来表示,但是它们也有可能要用Macromedia Flash和WAP来表示。

    因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则。如果你想把你的数据库从MySQL移植到Oracle,或者改变你的基于RDBMS数据源到LDAP,只需改变你的模型即可。一旦你正确的实现了模型,不管你的数据来自数据库或是LDAP服务器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松偶合的构件。

    控制器的也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。

 

MVC的缺点是由于它没有明确的定义,所以完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。

    你将不得不花费相当可观的时间去考虑如何将MVC运用到你的应用程序,同时由于模型和视图要严格的分离,这样也给调试应用程序到来了一定的困难。每个构件在使用之前都需要经过彻底的测试。一旦你的构件经过了测试,你就可以毫无顾忌的重用它们了。

    由于我们将一个应用程序分成了三个部件,所以使用MVC同时也意味着你将要管理比以前更多的文件,这一点是显而易见的。这样好像我们的工作量增加了,但是请记住这比起它所能带给我们的好处是不值一提。

   

 

MVC设计模式是一个很好创建软件的途径,它所提倡的一些原则,像内容和显示互相分离可能比较好理解。但是如果你要隔离模型、视图和控制器的构件,你可能需要重新思考你的应用程序,尤其是应用程序的构架方面。如果你肯接受MVC,并且有能力应付它所带来的额外的工作和复杂性,MVC将会使你的软件在健壮性,代码重用和结构方面上一个新的台阶。

 

 

 http://baike.baidu.com/view/5432454.htm#3

 

 

从Qt的角度看MVC框架 从Qt的角度看MVC框架最近开始看《设计模式之禅》,其中MVC框架是我最熟悉的,文中的MVC是以JAVA的代码来解释的,我对java只是略有接触也就不赘述书本里的描述和代码分析,这里就从Qt的角度来分析一下MVC框架和QTableView的代码实现。 阅读详情

相关推荐

MVC框架知识详解

MVC框架知识详解

不迁怒,不贰过。小知识,大智慧。 3118

【MVC框架】——什么是MVC框架

    学习了经典三层之后,觉得任何一种框架都不再是难的,无论怎样,都需要连接数据库、业务逻辑处理、显示。其余的无非就是给三层解耦合,解耦合越到位,这个框架就越容易被接受。       百度百科:MVC全名是Model View Controller,是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需...

Coder Yasmine 1万+

大规模SoC芯片Hierarchical Flow Calibre LVS教程

大规模SoC芯片Hierarchical Flow Calibre物理验证LVS实现教程

weixin_37584728的博客 1200

Unity MVC框架之见解

Unity MVC框架之见解MVC框架认识构架图案例无框架,普通逻辑代码脚本MVC框架的运用Model脚本View脚本主界面的View脚本角色View脚本主界面的Controller脚本角色Controller脚本控制主界面的显示脚本脚本控件物体的连接 MVC框架认识 MVC框架本不是用于在游戏行业产生的框架,但是其编程思想对游戏开发的影响也很大。 M: model,是模型的意思,可是模型是为何物?是我们游戏中所要操作的人物模型等等。其主要就是存储数据的一个物体。我们所见到的的软件等等,都是本身去操作一条条

m0_48554728的博客 3897

Rockchip平台之RK3566/3568 OS02N10

文章摘要 本文主要介绍了200W摄像头传感器OS02N10在RK3566平台上的兼容与适配过程。作者基于之前的400W摄像头兼容经验,针对200W摄像头进行了类似的适配工作。文章详细阐述了RK3566芯片的特性和OS02N10传感器的技术参数,包括分辨率、接口和功耗等。适配过程分为三个关键部分:DTS设备树文件配置(定义I2C地址、电源域和GPIO控制等)、驱动文件开发(寄存器初始化和操作)以及XML和JSON配置文件调整(图像参数设置)。作者特别强调了初始化数组中空寄存器终止条件的重要性,并分享了兼容过程

different_xzh的博客 2412

【AMD显卡在WIndow10/11部署带GPU支持的深度学习环境(Pytorch-DirectML篇)】

这篇是之前Tensorflow-DirectML的姊妹篇,如果对TF感兴趣的可以搜索我的博文。 首先我们丢一个官网地址,但是官网那个会误导新人如果你按那个操作的话。 https://docs.microsoft.com/en-us/windows/ai/directml/gpu-pytorch-windows 这里用我的方法操作: 首先声明一下,因为我的显卡是AMD RX6600,不带XT(性能和RTX3060 12G版本半斤八两),所以目前没有最新的WSL2驱动,如果有了的话欢迎告知我,所以我这里就.

weixin_44029053的博客 2万+

android开源mvc框架有哪些,android MVC 框架

前言:以前刚接触的时候,别人都讲我们用的最基础的框架就是mvc框架,就是那种将所有的代码写在一个activity。之后,我开始接触mvp框架,并且一直使用至今,导致对mvc框架的了解越来越少。最近偶然接触,并且搜了几篇文章,才了解以前写的算是一个“随机框架”,毫无章法。一、何为mvc框架?首先了解mvc是由model(模型)、view(视图)、controller(控制器)组成的。百度搜索mvc的...

weixin_39522423的博客 218

【程序化天空盒】过程记录01:日月 天空渐变 大气散射

在做一个仿照原神的天空盒,写文章作为技术总结和记录。

qq_41835314的博客 6741

Unity中的MVC框架

好处1.各司其职,互不干涉 --编程思路更清晰2.有利开发中的分工 -- 多人协同开发时,同步并行3.有利于组件重用 -- 项目换皮时,功能变化小时,提高开发效率坏处1.增加了程序文件的体量 -- 脚本由一变三2.增加了结构的复杂性 --对于不清楚MVC原理的人不友好3.效率相对较低 -- 对象之间的相互跳转,始终伴随着一定开销铁打的M和V,流水的X数据和界面是必备的内容我们可以通过改变X元素来优化原本的MVC也就是改变联系和处理M(数据)和V(界面)的方式。

m0_61939767的博客 2750

嵌入式开发板OpenClaw部署:ESP32-S3与RISC-V平台性能评估

ESP32-S3与RISC-V平台在OpenClaw部署中的性能评估 本文对比分析了ESP32-S3和RISC-V两种嵌入式平台在OpenClaw部署中的性能表现。ESP32-S3凭借240MHz双核Xtensa LX7处理器和专用AI加速器,特别适合轻量级AI推理任务;而RISC-V凭借开源架构和模块化设计,可实现更高的能效比。文章详细介绍了ESP32-S3-DevKitC-1、SiFive HiFive1等典型开发板的硬件规格,推荐了ESP-IDF和FreeRTOS等操作系统,并提供了完整的开发环

博客 1127

Jetson Orin Nano 平台适配IMX585 camera驱动调试记录

Jetson Orin Nano Devkit适配imx585 camera使用argus_camera捕获流,图片是黑色的用示波器来测量mipi信号,信号正常Jetpack版本: sensor参数: dts配置: 分析log: 如图: EBD有两行修改dts: 测试如下:log: 需要注意极性互换查看相应的原理图设置。可以使用设备树属性lane_polarity在任何lane上配置极性交换。例如, 尝试调整极性出现花屏 根据上述像素时钟配置说明调整为如下配置后,出图正常

jzwjzw19900922的博客 1322

PHP实现简易的MVC框架

实现MVC框架没有固定的实现方法,根据框架特色和语言特点以及自己的需求进行实现即可。

光头强的博客 7139

MFC实现键盘钩子(附完整源码)

MFC实现键盘钩子(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 389

Unity——基于MVC的UI框架

Unity——基于MVC的UI框架 前言 今天来学习一下MVC框架思想在Unity项目中的应用 MVC框架 概念 MVC全名是Model View Controller,是模型(Model)-视图(View)-控制器(Controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个...

#的博客 7549

专栏二十:如何选择你的单细胞亚群的分辨率--ROGUE

ROGUE这是继chooseR后第二个计算单细胞亚群分辨率的内容,其实关于代码的运行很简单,网上已经有不少教程,重复这些就没意思了,这里主要是结合探讨一下这个算法。

m0_58549466的博客 981

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

[MVC] 常用MVC框架及之间优缺点

目录常用MVC框架及之间优缺点Spring与Spring MVC的区别Spring与Struts2的区别Spring MVC和Struts2的区别Spring MVC和jFinal的区别REFERENCES更多 常用MVC框架及之间优缺点 主要框架 Spring Spring MVC Struts2 jFinal Spring与Spring MVC的区别 spring是一个开源框架,是为了...

架构探险之道 3974

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

小白MVC框架讲解

MVC框架简介为什么要学习MVC?基本术语和概述MVC总结MVC使用误区 为什么要学习MVC? 软件中最核心的,最基本的东西是什么? 问题: 没有很好设计的代码,常常就会出现数据层(持久层)和业务逻辑层还有界面代码耦合(相互影响)的情况。 而MVC用来解决业务逻辑和视图之间的耦合。 基本术语和概述 MVC模式: MVC全名是Model View Controller,是模型(model)-视图(v...

weixin_42746271的博客 1201

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android MVC框架

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、MVC是什么?二、写个简单的例子1.bean2.callback3.interfaces4.model5.ui总结 前言 提示:很多教程讲解框架感觉都像说天书一堆理论。学习的东西没用成为武器库反而成了累赘。mvc框架的作用其实就是把Activity里的网络请求、数据库存取操作\复杂的算法,耗时的任务等,把一堆东西拆分出来不要什么都放Activity里,好处是有利于维护,当然你感觉不需要我能看懂自己代码维护自己也没问题那么你

qq_43306376的博客 2111

Python MVC框架和其他Web框架有什么区别?

Python MVC(Model - View - Controller)框架本质上也是 Web 框架的一种,不过它遵循特定的 MVC 架构模式,与其他 Web 框架相比,既有共性也存在一些区别,以下详细分析:@app.routeurls.py。

xixixixixixixi21的博客 1056

php主流mvc框架,php mvc框架排行_MVC框架浅析 基于PHP

MVC框架浅析 基于PHP JPG,315x135,231KB,585_250最流行的PHP MVC框架 JPG,320x180,134KB,444_249PHP高级教程MVC框架项目开发 ookie应用 记住用户名 JPG,500x264,231KB,473_250PHP MVC框架原理 JPG,264x282,231KB,250_267php 搭建mvc框架 JPG,320x180,231KB...

weixin_31005047的博客 497

Mvc、Springmvc框架

Mvc学习,springmvc学习,以及springmvc相应的操作

weixin_64574904的博客 1753
上一篇: MFC框架中对最近文件列表的支持
下一篇: 软件架构设计
geeeeeeee
博客等级 码龄23年 36粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值