谷歌官方MVP Demo解读
来源:互联网 发布:三防漆涂覆机编程 编辑:程序博客网 时间:2024/05/19 05:30
谷歌官方MVP Demo解读
对于MVP不熟悉的同学可以参考一下阮一峰老师关于三种模式的图解 MVC,MVP 和 MVVM 的图示
官方Demo的链接
项目结构与目录结构
可以看到谷歌是按照模块分包的,其在tasks为首页的包,下面解读其工作流程。
谷歌的MVP项目中亮点在于:
- 加入了契约类 Contract来统一管理某个模块中的presenter接口和view接口。
- 将Fragment作为view,Activity作为P和V的创建者,并将两者联系起来。
基类与契约类–TasksContract
契约类中会同时声明模块中V和P层的接口并定义好行为,这样的好处在于我们可以一目了然的看到模块中的各个功能。
View层–TasksFragment
TasksFragment实现了TasksContract.View接口,在界面可见的时候(OnResume)的时候调用P层的start()方法加载数据。
Presenter层–TasksPresenter
可以看到在TasksPresenter的构造函数中,会传入两个参数
(@NonNull TasksRepository tasksRepository, @NonNull TasksContract.View tasksView)
其中:tasksRepository就是Model层对象,tasksView就是View层对象。并且会调用方法
mTasksView.setPresenter(this);
将自身传递给View层,这样View就拿到了Presenter的引用。此时也就形成了下面的通信方式:
TasksActivity
TasksActivity并没有实现TasksContract.View接口,而是负责创建TasksFragment(View)和TasksPresenter(Presenter)从而将两者联系起来。
Model层–TasksRepository
Model层会判断获取本地缓存的数据或者是获取远程的数据,这个逻辑是由Model完成的,并通过回调接口回传数据到Presenter。而Presenter只负责什么时候去获取数据就行,而不关心数据的来源。
presenter请求数据
Model获取具体的数据并回传
回调接口
总结
你大爷还是你大爷
本文地址:http://blog.csdn.net/ProdigalWang/article/details/75119384
- 谷歌官方MVP Demo解读
- ionic官方demo解读
- Android官方MVP架构--解读
- Android官方MVP架构解读
- Android官方MVP架构解读
- Android官方MVP架构解读
- Android官方MVP架构解读
- Android官方MVP架构解读
- Android官方MVP架构解读
- Android官方MVP架构解读
- 谷歌官方mvp介绍
- 解读Android官方MVP项目单元测试
- 解读Android官方MVP项目单元测试
- Google官方MVP Sample代码解读
- 解读Android官方MVP项目单元测试
- 解读Android官方MVP项目单元测试
- Android官方MVP架构示例项目解读
- 解读 Android 官方 MVP 项目单元测试
- 诉说站点优化之前一定要先分析用户的心里这样排名才能上来
- Linux中查看各文件夹大小命令du -h --max-depth=1
- 简单获取最近6个月的方法
- win10服务主机占用cpu使用率该怎么办?win10服务主机cpu高的处理方法
- 剑指offer 46---实现1+2+3...+n,要求不能使用乘除法、循环、条件判断、选择相关的关键字
- 谷歌官方MVP Demo解读
- POJ 1849 Two【树的直径+树的遍历】
- spring factory-bean用法
- PythonNewHere
- Vector用数组下标访问的条件
- 坦克类游戏的制作之路
- oracle按某两个字段的两个值排序
- 1、驱动应该怎么学
- JavaScript 判断两个数组是否相等 或者 判断一个数组中是否有重复的元素