当前位置:首页 > 生活百科

mvp开发模式是什么意思(半分钟了解mvp模式)

栏目:生活百科日期:2025-06-05浏览:0

MVC 模式

Model-View-Controller ,模型-视图-控制器模式

Model:针对业务模型,建立的数据结构,Model 与 View 无关,而与业务有关。View:Android 中一般采用 XML 文件描述。Controller:Android 中通常在 Activity,Fragment 中处理。

MVC 整体的实现过程可以概括为:

Controller 来操作 Model并将结果返回给 View 展示

一图胜前言.png

从图上可以看出 MVC 模式的缺点是 View 定义不够清晰,xml 文件属于 View 但是 Activity 、Fragment 中也有 View 的操作,为了解决这个问题,因此出现了 MVP 模式。

MVP 模式

Model-View-Presenter,是 MVC 的演化版本。

Model:主要提供数据的存取功能View:Android 中一般是 Activity,Fragment,xml 文件Presenter:作为 View 和 Model 之间的桥梁。

MVP 整体的实现过程可以概括为:

Model 定义好存取接口,Presenter 通过接口调用 Model 中的接口获取到结果,最后通过 View 接口去展示具体 View

image.png

从上图可以看出 MVP 解决了 MVC 中 View 定义不清晰的问题,同时划清了 Model 和 View 的界限,View 不能直接访问 Model,Model 也是不能直接访问 View。

MVP 的处理大部分都是通过接口去实现的,这也会导致代码的逻辑层级较深,所以又出现了一个架构模式 MVVM。

MVVM 模式

了解的不是很深入,写的可能有误,参考即可。

Model-View-ViewModel,和 MVP 类似,但是使用 ViewModel 替换了 Presenter 。

ViewModel :View 和 Model双向绑定,View 发生改变后 ViewModel 会通知 Model 跟随改变,同理 Model 改变 ViewModel 也会通知 View 跟随改变。

image.png

MVVM 虽然解决了 MVP 中代码层级深度过深问题,但是需要使用 DataBinding,代码层面也不易理解。

假装总结一下

在实际开发中,采用 MVP 模式已经足够了,虽然类文件会变多一些,但是能够降低代码之间的偶尔同时便于维护,这就够了。

对于 MVP 的学习,入门例子推荐 谷歌 GitHub 上的 TODO-MVP 例子。

如果想深入可以再把 TODO 系列看完,听说 MVP + RxJava + Dagger2 很香?

“mvp开发模式是什么意思(半分钟了解mvp模式)” 的相关文章

oppo用户中心如何更换(oppo个人服务中心)

2020年10月19日晚,OPPO召开发布会,发布了一款重磅产品——OPPO智能电视S1,这款电视也是OPPO的首款电视。S1用极致的配置,以及极具竞争力的价格...

seo新手入门看什么书籍,seo零基础入门教程

每天都会有大量的SEO新人进入这个行业,刚开始的时候,大家总是有些迷茫,满脑子的问题,面对手头工作的时候,总是不能快速做出决策。为了帮助刚刚入行的SEO人员快速...

icloud怎么用,icloud的正确用法详解

iCloud是苹果公司2011年推出的互联网云服务,允许用户在Mac计算机、iOS设备间同步文件,同时还能够整体备份iOS设备的系统。尽管其他的云服务如Goog...

40岁以上抗衰面霜推荐(推荐4款效果超好的大牌抗衰面霜)

面霜在基础护肤中起到的作用是锁水保护,涂上面霜之后,面霜会在皮肤表面形成一层油性保护膜,一方面能阻挡来自外界有害物质侵入皮肤;另一方面也能防止皮肤内的水分散失,...

cad图层全开命令(cad图层被隐藏了调出来的步骤)

CAD软件中的图层功能不仅对CAD制图有着很重要的作用,对于CAD看图也有很重要的作用,我们可以选择关闭某一图层只查看其它图层中的内容,这样既简单有清晰明了,那...

ubuntu安装zlib详细教程(查看Linux系统版本)

Zlib是一个用于数据压缩的开源库。作为使用者,你可能会遇到需要安装zlib(或zlib-devel包)作为另一个应用程序的依赖项的情况。但问题来了,如果你尝试...

mysqlzip安装配置教程(linuxmysql创建数据库的方法)

一文学会Windows系统下mysql解压版安装配置流程mysql安装包可到官网下载,地址:https://dev.mysql.com/downloads/my...

十面埋伏四面楚歌的主人公是谁(详解其出处及主人公)

阅读几句古文,学习一个成语,知道一个故事,熟悉一个人物,了解一段历史。四面楚歌十面埋伏【出处】项王军壁垓下,兵少食尽,汉军及诸侯兵围之数重。夜闻汉军四面皆楚歌。...

docker的应用场景有哪些(docker制作springboot镜像)

随着Docker的使用量越来越大,监控Docker容器正在变得更有挑战性。随着Docker的使用量越来越大,监控Docker容器正在变得更有挑战性。每天都有大量...

word分页快捷键是什么(word快捷键使用方法)

快捷键简名功能Ctrl+0还原将IE页面还原到100%Ctrl+1,2,3&…切换浏览器切换到从左边数起第1,2,3&…个标签Ctrl+...