Android MVC, MVP, MVVM, MVI 架构
MVC 架构MVC 架构主要分为以下几个部分Model层主要负责网络请求数据库处理I/O的操作即页面的数据来源View层 对于xml布局文件和java代码动态view部分Controller层 主要负责业务逻辑在android中由Activity承担请求的流程View接受用户的交互请求。View将请求转交给Controller。Controller操作Model进行数据更新。数据更新之后Model通知View数据变化。View显示更新之后的数据。存在问题Activity 同时负责管理 View 层与 Cnntroller 层的工作会使Controller层变得臃肿View 与 Model 之间存在依赖关系相互耦合不利于开发和维护MVP 架构MVP的构成View层对应于Activity与XML,只负责显示UI,只与Presenter层交互与Model层没有耦合Presenter层 主要负责处理业务逻辑通过接口回调View层避免Activity的臃肿Model层主要负责网络请求数据库处理等操作这个没有什么变化流程View 接收用户交互请求View 将请求转交给 Presenter(V调用P接口)Presenter 操作Model进行数据更新(P调用M接口)Model 通知Presenter数据发生变化(M调用P接口)Presenter 更新View数据(P执行接口,V相应回调)相较于MVC在MVP中Activity的代码不臃肿解耦。Model层与View层完全分离修改V层不会影响M层降低了耦合性。Presenter层与View层的交互是通过接口来进行的便于单元测试。可以将一个Presenter用于多个视图而不需要改变Presenter的逻辑。仍然存在的缺点双向依赖View 和 Presenter 是双向依赖的一旦 View 层做出改变相应地 Presenter 也需要做出调整。在业务语境下View 层变化是大概率事件随着业务逻辑的增加一个页面可能会非常复杂这样就会造成View的接口会很庞大。MVVM 架构MVVM模式将Presenter改名为ViewModel基本上与MVP模式完全一致。唯一的区别是它采用双向数据绑定data-bindingView的变动自动反映在ViewModel反之亦然同时将代码划分为三个部分ViewActivity 和 Layout XML 文件与 MVP 中 View 的概念相同Model负责管理业务数据逻辑如网络请求、数据库处理与 MVP 中 Model 的概念相同ViewModel存储视图状态负责处理表现逻辑并将数据设置给可观察数据容器。流程View 接收用户交互请求View 将请求转交给ViewModelViewModel 操作Model数据更新Model 更新完数据通知ViewModel数据发生变化ViewModel 更新View数据MVI 架构MVI与MVVM很相似其借鉴了前端框架的思想更加强调数据的单向流动和唯一数据源。![[Pasted image 20260424011110.png]]分为三个部分Model: 与MVVM中的Model不同的是MVI的Model主要指UI状态State。例如页面加载状态、控件位置等都是一种UI状态View: 与其他MVX中的View一致可能是一个Activity或者任意UI承载单元。MVI中的View通过订阅Model的变化实现界面刷新Intent: 此Intent不是Activity的Intent用户的任何操作都被包装成Intent后发送给Model层进行数据请求MVI强调数据的单向流动主要分为以下几步用户操作以Intent的形式通知ModelModel基于Intent更新StateView接收到State变化刷新UI。![[Pasted image 20260424011212.png]]参考资料Android 架构模式如何选择Android架构模式飞速演进目前已经有MVC、MVP、MVVM、MVI。这篇文章就针 - 掘金MVVM 进阶版MVI 架构了解一下~MVVM架构被官方推荐成为Android开发中的主流架构。不过软件开发中没有银 - 掘金

相关新闻

【单片机毕业设计推荐】基于 STM32 或 51 单片机的智能感应台灯控制系统设计与实现 基于单片机的人体感应自适应调光台灯系统开发(021404)

【单片机毕业设计推荐】基于 STM32 或 51 单片机的智能感应台灯控制系统设计与实现 基于单片机的人体感应自适应调光台灯系统开发(021404)

文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能技术路线项目演示关于我们项目案例源码获取温馨提示:本人主页置顶文章(点我)有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)有 CSDN 平台官…

2026/7/31 16:47:31 阅读更多 →
BilibiliDown:跨平台B站视频下载终极指南,免费打造个人媒体库

BilibiliDown:跨平台B站视频下载终极指南,免费打造个人媒体库

BilibiliDown:跨平台B站视频下载终极指南,免费打造个人媒体库 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcod…

2026/7/31 16:47:31 阅读更多 →
STM32定时器RCR与单脉冲模式实现步进电机精确脉冲控制

STM32定时器RCR与单脉冲模式实现步进电机精确脉冲控制

1. 项目背景与核心需求 最近在做一个桌面小装置,需要控制一个42步进电机精确旋转固定的角度,比如让一个转盘每次转动90度。手头正好有块STM32F103的开发板,第一反应就是用PWM输出脉冲来驱动步进电机驱动器。听起来很简单对吧?不就…

2026/7/31 16:47:31 阅读更多 →

最新新闻

ncmppGui:3分钟掌握网易云音乐NCM格式解密转换技巧

ncmppGui:3分钟掌握网易云音乐NCM格式解密转换技巧

ncmppGui:3分钟掌握网易云音乐NCM格式解密转换技巧 【免费下载链接】ncmppGui 一个使用C编写的极速ncm转换GUI工具 项目地址: https://gitcode.com/gh_mirrors/nc/ncmppGui ncmppGui是一款专为网易云音乐NCM加密格式设计的极速转换工具,采用C编写…

2026/7/31 17:22:48 阅读更多 →
【路由协议LEACH和EAMMH】无线传感器网络中的聚类:使用MATLAB对EAMMH和LEACH协议的性能比较研究附Matlab代码

【路由协议LEACH和EAMMH】无线传感器网络中的聚类:使用MATLAB对EAMMH和LEACH协议的性能比较研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、算法改进、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现私信🍊个人信条:做科研,博学之、审问之、慎思之、明辨之、…

2026/7/31 17:22:48 阅读更多 →
APK Installer:在Windows上直接安装Android应用的完整指南

APK Installer:在Windows上直接安装Android应用的完整指南

APK Installer:在Windows上直接安装Android应用的完整指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾想在Windows电脑上运行Android应用&…

2026/7/31 17:22:48 阅读更多 →
OpenCore黑苹果安装终极指南:避开常见陷阱,打造完美macOS系统

OpenCore黑苹果安装终极指南:避开常见陷阱,打造完美macOS系统

OpenCore黑苹果安装终极指南:避开常见陷阱,打造完美macOS系统 【免费下载链接】OpenCore-Install-Guide Repo for the OpenCore Install Guide 项目地址: https://gitcode.com/gh_mirrors/op/OpenCore-Install-Guide OpenCore黑苹果安装是当前最专…

2026/7/31 17:22:48 阅读更多 →
乐高漫威抽抽乐摸盒技巧:阿加莎女巫识别全攻略

乐高漫威抽抽乐摸盒技巧:阿加莎女巫识别全攻略

最近在逛乐高店时,发现很多玩家对漫威抽抽乐系列又爱又恨——想要集齐心仪角色,却总担心重复购买。特别是最新推出的阿加莎女巫人仔,作为《旺达幻视》中的高人气反派,成为了不少收藏家的目标。但你真的了解如何高效收集这类热门人…

2026/7/31 17:22:48 阅读更多 →
在Windows上直接安装Android应用:APK Installer带你告别模拟器时代

在Windows上直接安装Android应用:APK Installer带你告别模拟器时代

在Windows上直接安装Android应用:APK Installer带你告别模拟器时代 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾想过,在Windows电脑…

2026/7/31 17:21:48 阅读更多 →

日新闻

物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:34 阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:34 阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:34 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻