OkHttp中的设计模式之一:Builder模式
1. 什么是Builder模式
关于什么是builder模式,具体可以参考一下这篇文章。
Builder模式分为:经典builder模式和变种builder模式。而在Android项目中,一般使用的都是变种Builder模式,OkHttp中也例外。不管是OkHttpClient
还是Request
,都是通过变种Builder模式进行构建的。下面来我们来看一下OkHttp的源码,来感受一下Builder模式的应用。
2. OkHttp中的实例
OkHttp
中很多类都有用到Builder
模式,使用上都大同小异,所以下面就以OkHttpClient
为例子,来讲一下Builder
模式在OkHttp
中的应用。
2.1 OkHttpClient的构建方式
构建OkHttpClient
有两种方式:
//方式1
OkHttpClient client1 = new OkHttpClient();
//方式2
OkHttpClient client2 = new OkHttpClient.Builder()
.writeTimeout(1000, TimeUnit.MILLISECONDS)
.readTimeout(1000, TimeUnit.MILLISECONDS)
.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
return null;
}
})
.build();
}
方式2很明显,一看就是通过Builder模式构建的。但是实际上,方式1内部也是通过调用了new Builder()
的方式通过构建了一个默认参数的OkHttpClient
:
public OkHttpClient() {