总结自https://www.bilibili.com/video/BV1To4y1o7Eb
retrofit封装了Okhttp 本身并不能进行网络请求。只能在Android使用的网络请求框架。

1.png

2.png
request:统一完成(post/get/…)
回调陷阱:完成上一步网络请求才能进行下一步网络请求。

3.png
Retrofit简化了网络请求。优化了网络请求的使用。

4.png

5.png

7.png
build设计模式:参数》5个;存在可选参数。
retrofit.java这里使用的设计模式:
外观、门面模式:本生并不具备什么功能,封装了网络请求的接口。

6.png
Retrofit的create为什么用动态代理?

8.png

9.png
这行代码是Retrofit的核心,返回了一个对象。
等于new 了一个ISaredListService()对象
动态代理。

10.png
1.对接口了进行拦截。获取到所有的注解信息,即是构建request动态变化的对象
2.就可以动态构建带着具体请求的url。
3.解决了构建url繁琐的问题。

11.png
serviceMethod设计理念

12.png
loadServiceMethod方法包含大量反射、大量解析。
所以设计了一个存放serviceMethod的缓存

13.png

14.png

15.png
每一个接口都有一个对应的serviceMethod。

16.png
RxJavaCallAdapterFactory设计模式和理念(略 等Rxjava后再总结)
链接:https://www.jianshu.com/p/dbd8cf65a89f