个人学习_基于Google的MVP架构demo学习

首先说明:Google的架构demo的地址是:

https://github.com/googlesamples/android-architecture

里面很多sample,说明如下:

这里写图片描述

本文是基于MVP基础结构demo进行的;

进入demo后会有:

这里写图片描述

分别是 :

  • addedittask是页面,对应addedittaskActivity;
  • data是Model包了;
  • statistics是页面,对应statisticsActivity;
  • taskdetail是页面,对应taskdetailActivity;
  • tasks是页面,对应tasksActivity;
  • Util是工具包;
  • BasePresenter是所有的Presenter的爸爸;
  • BaseView是所有的View的爸爸;

这里面有几个页面都分别采用MVP结构,随便点击进入tasks包,我们就分析一个足够了:

这里写图片描述

好了现在开始琢磨说明是MVP;

M这里没有 就是前面的data包里面内容;
V就是TaskDetailFragment;(用Fragment的原因官网有说)
P就是TaskDetailPresenter;

那TaskDetailActivity、TaskDetailContract是什么角色?

TaskDetailActivity的角色就是:

把V和P联合一起,赋予他们两生命力(生命周期);

TaskDetailContract的角色就是:

契约类来统一管理view与presenter的所有的接口,
用处:使得view与presenter中有哪些功能,一目了然,维护起来也方便,如下:

这里写图片描述

实现过程:

先说V和P的交互,M和P的交互后面补。

这里写图片描述

组内四个角色,Fragment是前端员工V,Presenter是后端员工P;Contract是HR;Activity是组长;
还有两个角色:BaseView是组员V的爸爸、BasePresenter是组员P的爸爸;

V爸爸的家规是:孩子V一定要投靠员工P(BaseView里setPresenter(T Presenter))
P爸爸的家规是 孩子P一定要照顾好V的开始状态(BasePresenter里start())

HR(Contract)是按照需求去招聘组员P和组员V的,所以知道并要求他们两个有什么功能;如下图:

组员V可以做:setLoadingIndicator()、showMissingTask()...
组员P可以做:editTask()、deleteTask()...

这里写图片描述

组长Activity 把员工V和员工P两个拉一起说你们跟我一起做项目,
然后V和P的吃喝拉撒(生命周期)就跟组长Activity一起了。

过程:

这里写图片描述

心得:

为什么V爸爸BaseView要实现setPresenter呢?

个人觉得,应该是Activity懒得帮你们绑在一起了,然后直接在Presenter的构造函数里面设置把View也传进去给Presenter,让Presenter自己在构造函数里面绑定一起。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值