前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MVC的秘密

MVC的秘密

作者头像
Bug开发工程师
发布2020-03-31 16:30:36
9630
发布2020-03-31 16:30:36
举报

ASP.NET MVC

MVC到现在为止应该有很多年的历史了,在学校学习asp.netMVC的时候我理解MVC包括三层,视图(View)控制器(Controller)数据模型(Model)

  1. 控制器链接视图层和数据模型层
  2. 数据模型层用来对数据库中进行建模操作以及一些存储过程的存放
  3. 视图负责呈现用户界面,不管它是HTML还是桌面应用程序上的UI小部件,该视图与模型交互通信,该模型包含视图需要显示的所有数据。视图通常就没有太多的逻辑,当然他也可能只是一个纯的HTML.

SpringMVC

后面了解到了Java以后了解了SpringMVC,与 ASP.NET 不同,Spring MVC 对于 MVC 架构模式的实现就更加复杂了,增加了一个用于分发请求、管理视图的 DispatchServlet,新增这个小工具继承了FrameworkServlet。

  1. 通过 DispatchServlet 将控制器层和视图层完全解耦;
  2. 视图层和模型层之间没有直接关系,只有间接关系,通过控制器对模型进行查询、返回给 DispatchServlet 后再传递至视图层;

Java最开始的MVC结构

Jsp+servlet+javaBean,以控制为核心,jsp只负责显示和收集数据,Servlet,连接视图和模型,

将视图层数据,发送给模型层,javaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,5年前基本上大多数的项目都是使用这种mvc的实现模式,不得不说现在很多工程上还是用Servlet因为历史原因,当然还有很多大厂也是用的ASP.netMVC在其上面做二次开发然后形成自己产品的开发框架,当然spring全家桶系列也很多。

我理解纯净版的MVC设计

一共包含三个部分,模型,视图、控制器

模型对象

模型对象封装了特定于应用程序的数据,并定义了处理和处理该数据的逻辑和计算。例如,模型对象可能代表游戏中的角色或地址簿中的联系人。一个模型对象可以与其他模型对象具有一对多关系,因此有时应用程序的模型层实际上是一个或多个对象图。在将数据加载到应用程序后,属于应用程序持久状态的大部分数据(无论该持久状态存储在文件还是数据库中)都应驻留在模型对象中。因为模型对象代表与特定问题领域相关的知识和专长,所以它们可以在相似的问题领域中重用。

通信:用户操作通过控制器对象进行通信视图层中创建或修改数据,并导致创建或更新模型对象。当模型对象发生更改时(例如,通过网络连接接收到新数据),它将通知控制器对象,该控制器对象将更新相应的视图对象。

查看物件

视图对象是用户可以看到的应用程序中的对象。视图对象知道如何绘制自身,并且可以响应用户的操作。视图对象的主要目的是显示来自应用程序模型对象的数据并启用该数据的编辑。尽管如此,视图对象通常在MVC应用程序中与模型对象分离。

因为您通常会重用和重新配置它们,所以视图对象可在应用程序之间提供一致性。

通信:视图对象通过应用程序的控制器对象了解模型数据的变化,并通过控制器对象将用户启动的更改(例如,在文本字段中输入的文本)通过控制器对象传递给应用程序的模型对象。

控制器对象

控制器对象充当一个或多个应用程序的视图对象与其一个或多个模型对象之间的中介。因此,控制器对象是一个通道,视图对象通过该通道了解模型对象的变化,反之亦然。控制器对象还可以为应用程序执行设置和协调任务,并管理其他对象的生命周期。

通信:控制器对象解释在视图对象中进行的用户操作,并将新的或更改的数据传递到模型层。当模型对象更改时,控制器对象会将新的模型数据传达给视图对象,以便它们可以显示它。

结尾

其实感觉微软的asp.net MVC结构是最容易让人理解的,而且操作也很简单只需要在VS中创建一个MVC的项目就可以快速体验到,而且结构很清晰,如果大家想了解思想的话可以尝试入手下asp.net MVC。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农沉思录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 模型对象
  • 查看物件
  • 控制器对象
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档