Rxjava+MVP+Retrofit强强联合

博客转移到个人站点:http://www.wangchengmeng.club/2018/02/01/Rxjava+MVP+Retrofit%E5%BC%BA%E5%BC%BA%E8%81%94%E5%90%88/

欢迎来吐槽

作为一个已经在IT行业混搭了快三年的Android开发人员,一直熟悉与被所有人认同的MVC模式,并且通过学习也搭建有自己的网络框架,数据库ORM框架,所以在项目中一直也停留在这些很普通的知识使用上。但最近参加看一个比较大型的项目,发现仅仅使用以前的思想,在后期开发和维护中会出现很大的问题,代码耦合性太高,程序员最怕的就是迁一发动全身的时候,那是会让人慢慢奔溃的,并且各种异步,回调的代码,有句话叫迷之缩进毁一生,确实是这样的,现在是深深体会到这样的情况,所以在最近兴起的RxJava这种响应式的编程结构,以及MVP这种非常解耦的模式,以及和Rxjava产生基情的Retrofit网络框架,所以决定研究一下,将三者一起使用,你会发现你找到了新的出路。

Rxjava
这种响应式的模式,在代码结构上采用链式调用的方式,结构很清晰,从上而下执行,
并且可以完美的解决我刚刚时候的迷之缩进毁一生,它可以很简单的完成异步处理,指定各自工作的线程即可。推荐一篇很好介绍

RXjava的文章。建议初学者先看看这篇文章,我也封装了属于自己的写了Demo,
详情点击这里,先上我封装好了代码体验一下吧。
icon

MVP
一张图对比一下MVC和MVP体验一下两种模式的区别:

icon
MVP中实际上Activit承担了两种角色那就是View和Controller,所以随着项目的发展你会发现你的Activity会越来越臃肿,导致很难维护,而且很难做修改,总之就是很乱。但看了MVP你会发现View和Model之间没有直接的联系,presenter这个中介就成了传输的重要桥梁。那么Activity这个时候就是真正的V层了,之做UI方面的更新之类的操作,业务层的逻辑不会出现的Activity中,那么你的Activity中的代码会格外的清晰。
而在Presenter中再结合Rxjava这种响应式,将业务层逻辑放在专门的Manager中,在P层的代码也不会出现迷之缩进的情况,因为Rxjava可以直接指定线程工作。先看看MVP的工程目录结构:

icon

Retrofit
Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求。

1、创建业务请求接口,具体代码如下

icon

这里需要稍作说明,@GET注解就表示get请求,@Query表示请求参数,将会以key=value的方式拼接在url后面

2、创建一个Retrofit的示例,并完成相应的配置

icon

client(new OkHttpClient())创建一个client

addConverterFactory(GsonConverterFactory.create())Goson解析

3、创建ManagerService

icon

4、拿到了service,现在就可以直接请求网络了

icon

那么久完成了一个Request,接下来介绍一些常用的参数:

1、GET方式

    1、@Query

et方法请求参数都会以key=value的方式拼接在url后面,Retrofit提供了两种方式设置请求参数。第一种就是像上文提到的直接在interface中添加@Query注解,还有一种方式是通过Interceptor实现,直接看如何通过Interceptor(一般用于headers或者一些通用参数等)实现请求参数的添加。

添加header:

icon

创建httpclien的时候将Interceptor添加进去:

icon

2. @QueryMap

icon

  1. Query集合

icon

4. @Path

icon

POST:

1. @field

icon

  1. @FieldMap

icon

  1. @Body

icon

介绍一些,推荐一篇文章,关于介绍Retrofit

了解了Rxjava+MVP+Retrofit的文章很多,我也看过很多篇文章,然后写了Demo,做了封装,可以参考参考,详情点击这里

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值