准确来讲,Retrofit是一个RESTful的HTTP网络请求框架的封装。设计模式
**缘由:**网络请求的工做本质仍是由OKHTTP完成,而Retrofit只是负责网络请求接口的封装。markdown
tempimg-1302248544.cos.ap-chengdu.myqcloud.com/Img/PingMu/…网络
请求前:架构
统一的配置网络请求头:使用建造者模式、门面模式来对一些参数进行统一的配置,而且将其保存。框架
一致适配请求request:create()方法里面使用了动态代理模式,这样子就能够代理全部类对象。oop
请求后:ui
线程切换:spa
数据适配:线程
Retrofit这个类就是保存一系列的参数给后面使用,使用的是Build模式设计
在构建Retrofit时,采用的是建造者模式、外观模式
在适配一致请求request时:Create()方法里面使用了动态代理模式
建造者模式:
外观模式:
静态代理模式:
- 代理类和委托类有一样的接口。
- 代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及过后的消息处理等。
- 一个代理类的对象与一个委托类的对象关联,代理类的对象自己并不真正的实现服务,而是经过调用委托类的对象的相关方法,来提供服务。
动态代理模式:
Create()方法会生成一个类的对象,即传进来的类的对象。
每次调用create方法时,将class传递进来,retrofit就会采用动态代理的方式,返回该类的对象。