细细品味 Retrofit 的美丽
1、整体看很明显有个构建者Builder模式,Builder模式在Android中是很常见的一种设计模式,它的优点很明显一般情况一个框架都是需要灵活自由的配置参数属性的,如果不用Builder模式,都改成setter、getter,那初始化一个Retrofit对象就显得复杂和臃肿了。而这里Builder模式加上链式调用方式,为Retrofit框架的参数配置增添了不少灵活和自由,而且代码可读性也增强了。其实 Builder 模式的套路很简单,下面来个简单的伪代码Builder模式
2、以上就是Builder模式的套路模板,外部Retrofit的对象的构建最终是在build()方法new出来返回。Retrofit框架内部有好多地方都用到了Builder模式,也是为了方便自由配置参数的。Builder模式在Android开发中最常见的就是AlertDialog.Builder,可以自由的配置对话框的标题、内容、内容设置来源、确认取消等按钮事件等等。有兴趣的可以去了解下AlertDialog的源码,基本也是上面模板的套路。代理模式构建好 Retrofit 对象后,大家都知道这个框架网络请求的通讯接口 api 都是 Interface 接口中声明的,框架本身为了与网络请求业务做解耦用了动态代理的方式,为业务通讯接口生成代理对象,当代理对象调用业务接口方法 api 的时候,动态代理类就能监测到并回调,这时候就可以做网络框架该有的功能:解析通讯业务接口,生成网络请求体便于供应给底层OkHttp 做具体的网络请求工作。其实就是框架本身没有办法直接使用业务接口,所以请了一个代理中介对象去间接的访问业务接口,来完成相关的
3、来看看create方法是如何创建出ApiService接口的对象的。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:48
阅读量:35
阅读量:71
阅读量:46
阅读量:68