定义:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
构建者模式将一个复杂对象的创建过程封装起来,允许对象通过多个步骤来创建,并且可以改变过程。尤其是在对象特别复杂,内部参数及其多的时候,建造者模式就能发挥出它的优势。
OkhttpClient就是一个内部及其复杂的对象,内部包含一些代理,缓存,分离器,拦截器等。但是我们常用的是默认模式。
public class OkHttpClient implements Cloneable, Call.Factory, WebSocketCall.Factory {
// 构造函数1
public OkHttpClient() {
this(new Builder()); // 调用构造函数1
}
// 构造函数2
private OkHttpClient(Builder builder) {
......
}
public Builder newBuilder() {
return new Builder(this);
}
// Builder类
public static final class Builder {
public Builder() { }
Builder(OkHttpClient okHttpClient) { }
//Builder类的OkHttpClient
public OkHttpClient build() {
return new OkHttpClient(this);
}
}
}