创建型设计模式-建造者(Builder)模式

91 阅读1分钟
定义:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

构建者模式将一个复杂对象的创建过程封装起来,允许对象通过多个步骤来创建,并且可以改变过程。尤其是在对象特别复杂,内部参数及其多的时候,建造者模式就能发挥出它的优势。

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);
    }  
   }  
}

构建者模式的核心就是:自行组装