okhttp主框架是通过构建者模式实现对请求的封装方便用户对请求参数的封装修改和各种请求结果的回调。
通过责任链模式实现对请求的处理,如添加缓存拦截器、请求头拦截器、重定向拦截器,来方便用户对网络请求实现各种自定义封装处理。
请求线程池缓存使用的是Java缓存线程池+自定义线程工厂(设置线程名称和并设为非守护线程)
ExecutorService executorService = new ThreadPoolExecutor(0,Integer.MAX_VALUE,60, TimeUnit.SECONDS,
,new SynchronousQueue<Runnable>(), Util.threadFactory("okHttpThreadName",false));
即已使用过的线程池闲置60秒以内会被复用,超过60秒被回收。
请求的实现是socket链接。
总体核心精髓就是责任链模式。
Retrofit是用注解和代理把okhttp封装了一层,让用户可以使用REST风格的代码来使用okhttp