- OkhttpClient 实现了Call.Fctory,负责为Request 创建 Call;
- RealCall 为Call的具体实现,其enqueue() 异步请求接口通过Dispatcher()调度器利用ExcutorService实现,而最终进行网络请求时和同步的execute()接口一致,都是通过 getResponseWithInterceptorChain() 函数实现
- 3.getResponseWithInterceptorChain() 中利用 Interceptor 链条,责任链模式 分层实现缓存、透明压缩、网络 IO 等功能;最终将响应数据返回给用户。
责任链模式
将每个节点都看作为一个对象,每个对象有不同的处理逻辑,将一个请求从链式的起始端发出,沿着链的路径依次执行每个对象,直到请求处理完成为止,称之为责任链模式。
网友评论