半分钟了解mvp模式 mvp开发模式是什么意思
MVC模式
模型-视图-控制器,模型-视图-控制器模式
Model:针对业务模型,建立的数据结构,Model 与 View 无关,而与业务有关 。View:Android 中一般采用 XML 文件描述 。Controller:Android 中通常在 Activity,Fragment 中处理 。MVC的整个实现过程可以概括如下:
【半分钟了解mvp模式 mvp开发模式是什么意思】控制器操作模型并将结果返回给视图显示器
一图胜序 。png
从图中可以看出,MVC模式的缺点是视图的定义不够清晰 。xml文件属于视图,但Activity和Fragment 中也有视图的操作 。为了解决这个问题,出现了MVP模式 。
MVP模式
模型-视图-展示者是MVC的进化版本 。
Model:主要提供数据的存取功能 View:Android 中一般是 Activity,Fragment,xml 文件 Presenter:作为 View 和 Model 之间的桥梁 。MVP的整体实现过程可以概括如下:
模型定义访问接口,演示者通过接口调用模型中的接口得到结果,最后通过视图接口显示具体视图
image.png
从上图可以看出,MVP 解决了MVC 中视图定义不清晰的问题,同时划清了模型和视图的界限 。视图不能直接访问模型,模型也不能直接访问视图 。
MVP的处理大多是通过接口实现的,这也导致了代码更深层次的逻辑,于是就有了另一种架构模式MVVM 。
MVVM模式
理解不是很深,可能写的不对,参考一下就好 。
模型-视图-视图模型,类似于MVP,但是用视图模型代替了Presenter 。
ViewModel:视图和模型是双向绑定的 。当视图发生变化时,ViewModel会通知模型跟随变化 。同样,当模型改变视图模型时,它也会通知视图跟随改变 。
image.png
MVVM虽然解决了MVP中代码层次太深的问题,但是需要数据绑定,代码层次不容易理解 。
假装总结一下
在实际开发中,采用MVP模式就足够了 。虽然会有更多的类文件,但是可以减少代码之间偶尔的同时维护,这就足够了 。
对于MVP的学习,入门示例推荐Google GitHub上的TODO-MVP示例 。
如果想深入了解,可以再读一遍TODO系列 。听说MVP+RxJava+Dagger2很香?
推荐阅读
- 3分钟了解 facebook广告投放 facebook广告投放是做什么的
- 2分钟了解数据驱动运营 数据驱动运营什么意思
- 3分钟了解敏捷开发项目管理 敏捷开发项目管理流程
- 3分钟了解敏捷开发模型 敏捷开发是什么开发模型
- 3分钟了解亚马逊cpc广告 亚马逊cpc广告是什么意思
- 半分钟了解数据分析6步骤 数据分析过程的6个步骤
- 3分钟了解产品战略规划 产品战略规划主要体现在哪些层面
- 2分钟了解交互设计内涵 用户交互设计的需求包括
- 2分钟了解产品经理工作内容 产品经理岗位职责及任职要求
- 带你全面了解孟菲斯风格 孟菲斯风格作品赏析
