首页 > 其他分享 >MVC结构简介

MVC结构简介

时间:2022-10-24 14:01:53浏览次数:50  
标签:控制器 用户界面 简介 模型 应用程序 MVC 结构 View


MVC(Model-View-Controller)应用程序结构被用来分析分布式应用程序的特征。这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。


MVC结构提供了一种按功能对各种对象进行分割的方法(这些对象是用来维护和表现数据的),其目的是为了将各对象间的耦合程度减至最小。MVC结构本来是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。但是,将这些概念运用于基于Web的企业级多层应用领域也是很适合的。


在MVC结构中,模型(Model)代表应用程序的数据(data)和用于控制访问和修改这些数据的业务规则(business rule)。通常模型被用来作为对现实世界中一个处理过程的软件近似,当定义一个模型时,可以采用一般的简单的建模技术。


当模型发生改变时,它会通知视(View),并且为视提供查询模型相关状态的能力。同时,它也为控制器(Controller)提供访问封装在模型内部的应用程序功能的能力。


一个视(View)用来组织模型的内容。它从模型那里获得数据并指定这些数据如何表现。当模型变化时,视负责维持数据表现的一致性。视同时将用户要求告知控制器(Controller)。


控制器(Controller)定义了应用程序的行为;它负责对来自视的用户要求进行解释,并把这些要求映射成相应的行为,这些行为由模型负责实现。在独立运行的GUI客户端,用户要求可能是一些鼠标单击或是菜单选择操作。在一个Web应用程序中,它们的表现形式可能是一些来自客户端的GET或POST的HTTP请求。模型所实现的行为包括处理业务和修改模型的状态。根据用户要求和模型行为的结果,控制器选择一个视作为对用户请求的应答。通常一组相关功能集对应一个控制器。下图描述了一个MVC应用程序中模型、视、控制器三部分的关系:

 

图中实线表示高耦合的依赖关系,虚线表示低耦合的消息关系。业务模块是不依赖用户界面的,这样就隔离了用户界面的变更对业务程序的影响。用户界面负责收集用户的输入,显示用户需要的数据;控制器负责将用户的请求调用到实际的业务程序,也将业务程序处理的结果回送给用户界面;业务程序具体处理业务操作。同时业务模块可能主动发送消息到用户界面,通知界面显示数据。


在具体的环境下,这些因素可能发生一些变化。比如,在web开发中,由于web应用程序的性质,用户界面是在浏览器上运行的,而界面的控制和业务模块在浏览器上运行,所以在web应用中通常采用这种典型的MVC模式。并且在Web应用中,不存在服务器主动向客户端“推”数据,因此从Model到View之间的虚线也是不存在的。在windows窗体程序中,控制器和界面经常是合并在一起的,比如MFC框架中使用的Document-View模式,其中的Document对应MVC中的Model,负责保存业务数据,处理业务逻辑,View相当于MVC中的View+Controller,负责用户界面的显示、用户输入的收集和画面的跳转控制。


标签:控制器,用户界面,简介,模型,应用程序,MVC,结构,View
From: https://blog.51cto.com/shanyou/5789590

相关文章

  • ASP.NET MVC 4中的单页面应用程序
    ASP.NETMVC4beta中包含了一个实验项目,用作开发“单页面应用程序(singlepageapplications)”。该项目也称为ASP.NETSPA,其项目类型基于一组开源库以.........
  • 数据结构 数组动态数组
    数据结构:批量管理和维护数据。一维数组string[]Name=newstring[3];string数组存储的数据类型,Name数组名称new通过new操作符返回新数组对象string[3]定义数组的元......
  • ASP.NET MVC扩展库
    很多同学都读过这篇文章吧ASP.NETMVC中你必须知道的13个扩展点,今天给大家介绍一个ASP.NETMVC的扩展库,主要就是针对这些扩展点进行。这个项目的核心是I......
  • Codeforces Round #830 (Div. 2)D2. Balance (Hard version)(数据结构)
    题目链接题目大意维护一个集合的mex,每次有三种操作:'+'x:将数x插入集合中'-'x:将数x移除集合'?'k:询问满足mex的数是k的倍数既集合中未出现的数中最小的数......
  • chap4 循环结构、chap6 回顾数据类型和表达式 第一小组 学习总结
    chap4循环结构第一小组学习总结一、内容梳理c语言循环结构是指根据某一条件判断重复执行的语句,核心内容为循环控制表达式,如果表达式为真,则继续执行;否则,循环结束。c语......
  • 负载均衡简介
    负载均衡简介负载均衡:LoadBalance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(web服务、网络流量等)分担给指定的一个或多个后端特定......
  • 什么是算法和数据结构
    【1】算法(1)可以解决具体问题:例如1+2+3+4+。。。+99+100解题流程=算法(2)有设计解决的具体流程算法1: 1+2=3 3+3=66+4=10.。。加到100--->5050算法2:(1*100*50=101*5......
  • AI&BlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计
    AI&BlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理和区块链技术的乘客智能报警系统》案例的界面简介、功能介绍分......
  • 将Js对象转化为树状结构
    实现效果//转换前:source=[{id:1,pid:0,name:'body'},{id:2,pid:1,......
  • JavaScript简介
    JavaScript简介概念:一门客户端脚本语言运行在客户端浏览器中的。每一个浏览器都有javascript的解析引擎脚本语言:不需要编译,直接就可以被浏览器解析执行了功能:......