Retrofit2 + Rxjava2

Retrofit2

· 大概原理
通过java接口以及注解来描述网络请求,并用动态代理的方式,在调用接口方法前后(before/after)注入自己的方法,before通过接口方法和注解生成网络请求的request,after通过client调用相应的网络框架(默认okhttp)去发起网络请求,并将返回的response通过converterFactorty转换成相应的数据model,最后通过calladapter转换成其他数据方式(如rxjava Observable)

· 动态代理
代理对象拦截真实对象的方法调用,在真实对象调用前/后实现自己的逻辑调用
见Retrofit.create()方法

动态代理

优势

Java动态代理的优势是实现无侵入式的代码扩展,也就是方法的增强;让你可以在不用修改源码的情况下,增强一些方法;在方法的前后你可以做你任何想做的事情(甚至不去执行这个方法就可以)。

动态代理是设计模式中的代理模式:

定义:为其它对象提供一种代理以控制对这个对象的访问控制;在某些情况下,客户不想或者不能直接引用另一个对象,这时候代理对象可以在客户端和目标对象之间起到中介的作用。

在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface)、另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的。
参考 :https://www.cnblogs.com/gonjan-blog/p/6685611.html

Rxjava2

优点

  • 链式调用,代码调用流程异常清晰 ,代码简洁。
  • RxJava和EventBus一样也是基于观察者模式,但是使用的场景确实异步数据流的处理
  • RxJava更加强大,利用操作符它可以对发出的消息进行一系列的变换
  • 最方便的是线程切换

你可能感兴趣的:(Retrofit2 + Rxjava2)