当前位置: 首页 > news >正文

【MVC简介-产生原因、演变历史、核心思想、组成部分、使用场景】

MVC简介

产生原因:

MVC(Model-View-Controller)模式诞生于20世纪70年代,由Trygve Reenskaug在施乐帕克研究中心(Xerox PARC)为Smalltalk语言设计,目的是解决图形用户界面(GUI)开发中代码混乱的问题。核心目标是将数据管理(Model)、界面展示(View)和用户交互逻辑(Controller)分离,提升代码的可维护性和复用性。

发展历史与演变:
  1. 1979年:首次在Smalltalk-80中实现,奠定基础概念。
  2. 1988年:《Design Patterns》一书将MVC列为经典模式,推动其普及。
  3. Web时代:适配为MVC框架(如Struts、Ruby on Rails),后端处理逻辑,前端简化成模板。
  4. 现代演变
    • MVP/MVVM:针对前端复杂性衍生(如Android的MVP、Vue/React的MVVM)。
    • 微服务架构:Model层拆分为独立服务,Controller转为API网关。
核心思想:
  • 分离关注点
    • Model:数据与业务逻辑(如数据库操作)。
    • View:界面呈现(如HTML/UI组件)。
    • Controller:接收输入,协调Model和View(如路由处理)。
  • 松耦合:修改某一层时不影响其他层。

在这里插入图片描述

组成部分
Controller

控制器在不同的层面之间起着组织和管理作用,用于控制应用程序的流程,处理事件并做出响应。控制器做出的响应包括更新数据模型和选择视图解释数据模型。

控制器的具体作用如下:

  • 定义应用程序的行为和流程;
  • 响应用户动作,驱动模型改变;
  • 选择用于响应的视图。
View

视图用于有目的地显示数据(在理论上,这不是必需的)​。视图一般没有程序层面的逻辑,为了实现刷新功能,需要访问它所监视的数据模型,因此应该事先在它所监视的模型中注册监听事件。

视图的具体作用如下:

  • 解释模型;
  • 请求模型更新;
  • 发送用户动作到控制器。
Model

模型模型用于封装与应用程序的业务逻辑相关的数据及对数据的处理方法。它具有直接访问数据的权限,例如对数据库的访问。模型不依赖视图和控制器,即不关心被如何显示或者如何操作,但模型中的数据变化一般会通过某种刷新机制公布。为了实现这种刷新机制,用于监视相应模型的视图必须事先在相应模型上注册。

模型的具体作用如下:

  • 封装应用程序的状态;
  • 提供应用程序的功能;
  • 查询响应状态;
  • 通知视图改变。
使用场景:
  • Web开发:Spring MVC(Java)、Django(Python)。
  • 桌面应用:JavaFX、.NET WPF。
  • 移动端:iOS(UIKit)、Android(早期Activity结构)。
  • 前端框架:Angular、Ember.js(虽属MVVM,但受MVC启发)。
优缺点:
  • 优点:结构清晰、易于协作、可测试性强。
  • 缺点:小型项目可能过度设计,现代UI需结合MVVM等改进模式。

http://www.mrgr.cn/news/96620.html

相关文章:

  • 【Pandas】pandas Series to_markdown
  • 六种光耦综合对比——《器件手册--光耦》
  • 十五届蓝桥杯省赛Java B组(持续更新..)
  • ISIS【路由协议讲解】-通俗易懂!
  • 汇编学习之《数据传输指令》
  • Sentinel[超详细讲解]-1
  • JAVASE(十二)常用类(一)Object类
  • HTML实现图片上添加水印的工具
  • 使用大语言模型进行Python图表可视化
  • 高级java每日一道面试题-2025年3月20日-虚拟化操作系统篇[Docker篇]-如何控制docker容器的启动顺序?
  • 网络攻防快速入门笔记pwn|01 Pwn栈溢出基础
  • 戴尔电脑安装Ubuntu双系统
  • Adobe Lightroom 2025安装下载和激活指南
  • leetcode 169.Majority Element
  • Vue3中的Icon处理方案(包括将svg转化为Icon)
  • 一个极简的词法分析器实现
  • Java-01-源码篇-JUC并发编程-原子类
  • 供应链业务-供应链全局观(一)
  • 数据库--数据库设计
  • OpenHarmony v4.1 Release设置应用随系统自动启动