体系结构框架MVC与MVP的区别

本文深入探讨了MVC(模型-视图-控制器)和MVP(模型-视图-表示器)两种软件架构模式,详细解释了它们的基本概念、特点和优缺点。MVC强调模型、视图和控制器的分离,而MVP则通过表示器进一步增强了视图与模型的解耦,允许更灵活的视图替换。文章还分析了两者的区别,指出MVP中视图更加被动,但其与表示器的联系更为复杂。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、模型–视图–控制器(MVC)

1.基本概念


MVC(Model-View-Controller)模型由Trygve Reenskaug博士在20世纪70年代提出,并
最早在面向对象编程语言 Smalltalk-80中实现。MVC强调将用户的输入、数据模型和数据表示方式分开设计,一个交互式应用系统由模型、视图和控制器3个部分组成,分别对应内部数据、数据表示和输入/输出控制部分,其结构如下图所示。
在这里插入图片描述

  • 模型

模型对象代表应用领域中的业务实体和业务逻辑规则,是整个模型的核心,独立于外在的显示内容和显示形式。模型对象的变化通过事件通知视图和控制器对象。采用了发布者/订阅者方式,模型是发布者,视图和控制器是订阅者。对于模型而言,并不知道自己对应的视图控制器;但控制器可以通过模型提供的接口改变模型对象,接口内封装了业务数据和行为。

  • 视图

视图对象代表GUI对象,用用户熟悉和需要的格式表现模型信息,是系统与外界的交互接口。视图订阅模型可以感知模型的数据变化,并更新自己的显示。视图对象也可以包含子视图,用于显示模型的不同部分。在多数的MVC实现技术中,视图和控制器常常是一一对应的。

  • 控制器

控制器对象处理用户的输人,并给模型发送业务事件,再将业务事件解析为模型应执行的动作;同时,模型的更新与修改也将通过控制器来通知视图,保持视图与模型的一致。

MVC的整个处理流程为:

  • 系统拦截到用户请求,根据相应规则(多数采用路由技术)将用户请求交给控制器,控制器决定哪个模型来处理用户的请求;
  • 模型根据业务逻辑处理完毕后将结果返回给控制器;
  • 然后控制器将数据提交给视图;
  • 视图把数据组装之后,呈现给用户。

其中,模型处理所有的业务逻辑和规则,视图只负责显示数据,控制器负责用户的请求,这样将业务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值