我理解的 Android MVP 模式

之前一直使用 MVC 模式开发 Android 应用,而 MVP 模式也出现了好久,可能之前还是太菜了吧,看网上博客,Google 官方的例子,总是不懂,不过最近又开始看,多少有了些理解,写出来与大家分享一下。

一开始的 MVC 模式,Activity 其实承担了 V 和 C 的职责。负责 View 相关的绘制以及加载功能。我们也会在 Activity 中直接做一些数据加载相关的工作,最简单的,比如直接 new Thread 去请求数据了,数据请求回来,直接用 handler 传送到 UI Thread 中,进行 View 的更新。当然,这样做在当时是很方便的。

在学习了 Google 的 to-do-mvp App 后,一开始觉得好多接口,各种不懂。跟着 Google 的思路梳理了一下逻辑后,发现 MVP 模式并没有那么复杂,下面是我的一点理解。

  1. 抽象了一个 View 的接口,抽象出各个 show 方法,对布局中的 view 的不同操作都有,非常的细
  2. 抽象一个 Presenter 接口,简单来说是通过网络也好,本地也好,获取数据。它持有 View 对象的引用,可以调用 view 相关的显示方法。Presenter 执行完数据处理后,把数据传给 view 相关的方法中,或者调用 view 相关的方法。
  3. Activity 现在的职责很简单,至少从代码来看,只有 findViewById,初始化 presenter,把二者关联起来,implement View 的接口,实现 View 中的 show 方法,把数据展示在相关的 view 中。
  4. 不过我发现,以前用 MVC 模式时,应用类分包时,挺适合同一类放在一个包下,比如各个 Fragment 都放在 fragment 包下。而 MVP 适合按功能分,比如 [个人],就把 [个人] 这个功能模块的 Activity,Presenter,View 接口全部放到 person 这个包下。当然一些通用的 utils 类就放到 utils 包下即可。

简单来看就是将 Activity 原来臃肿的代码进行了一次分离,让 Activity 单单去显示数据。数据请求等操作放到 Presenter 中去了。

这仅仅是个人的部分见解,希望能对大家理解 MVP 时带来一点帮助,也欢迎大家有自己的想法可以在评论区交流。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值