mvp开发模式是什么意思(半分钟了解mvp模式)
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 接口去展示具体 Viewimage.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.pngMVVM 虽然解决了 MVP 中代码层级深度过深问题,但是需要使用 DataBinding,代码层面也不易理解。假装总结一下在实际开发中,采用 MVP 模式已经足够了,虽然类文件会变多一些,但是能够降低代码之间的偶尔同时便于维护,这就够了。对于 MVP 的学习,入门例子 谷歌 GitHub 上的 TODO-MVP 例子。如果想深入可以再把 TODO 系列看完,听说 MVP + RxJava + Dagger2 很香?
- 随机文章
- 核心危机(核心危机魔石合成攻略)
- 饿了么红包怎么用(饿了么红包怎么用微信支付)
- 儿童教育文章(儿童教育)
- 光遇花手先祖位置(安卓光遇手花先祖)
- 广州4a广告公司(广州4a广告公司创意总监年薪)
- 抖音卡(抖音卡顿怎么解决)
- xboxones(xboxone手柄怎么配对主机)
- 兵马俑(兵马俑介绍和历史背景)
- 帆船比赛(帆船比赛视频)
- 海猫鸣泣之时游戏(海猫鸣泣之时游戏在哪玩)
- 韩国媳妇和小雪(韩国媳妇和小雪的父亲工资是多少)
- 儋州市第二中学(儋州市第二中学录取分数线)
- 地球日主题(2020年世界地球日主题)
- 和柳亚子(和柳亚子先生于田)
- yy魔兽(yy魔兽世界)
- 国外成人游戏(国外成人游戏注册需要visa信用卡)
- 充值卡代理(充值卡代理加盟)
- 拆奶罩
- 郭妮小说(恶魔的法则郭妮小说)
- 杭同(杭同培训中心怎么样)
- 蝙蝠给人类的一封信(蝙蝠给人类的一封信)
- 大松电饭煲(美的大松电饭煲)
- 疯狂填字(疯狂填字5)
- 点对点短信息(点对点短信息费是什么意思)
- 哈利波特官网(哈利波特官网在哪里)
- 骇客神条(骇客神条怎么辨别真假)
- 杜星霖(杜星霖图片)
- 查传倜(查传倜个人生活)
- 广州晓港公园(广州晓港公园正门图片)
- 钢筋等级符号(钢筋等级符号电脑怎么输入)
