Java构建者模式

Java构建者模式

构建者模式

将一个复杂对象(初始化时需要的参数比较多)的构建与它的表示分离,使用同样的构建过程可以创建不同的表示。

  • 封装在一个单独的Builder对象中创建和组装一个复杂对象的各个部分。
  • 类将对象创建委托给Builder对象,而不是直接创建对象。

一个类(相同的构造过程)可以委托给不同的Builder对象来创建复杂对象的不同表示。

应用实例

Retrofit

  1. Retrofit的部分源码

    public final class Retrofit {
        //在包外部不能构建Retrofit的实例
        Retrofit(okhttp3.Call.Factory callFactory, HttpUrl baseUrl,
              List<Converter.Factory> converterFactories, List<CallAdapter.Factory>     callAdapterFactories,
              @Nullable Executor callbackExecutor, boolean validateEagerly) {
            this.callFactory = callFactory;
            this.baseUrl = baseUrl;
            this.converterFactories = converterFactories; // Copy+unmodifiable at call site.
            this.callAdapterFactories = callAdapterFactories; // Copy+unmodifiable at call site.
            this.callbackExecutor = callbackExecutor;
            this.validateEagerly = validateEagerly;
          }
    
         //Retrofit内部提供一个Builder类来构建Retrofit的实例
         public static final class Builder {
             //提供多个函数用于设置Retrofit的初始化参数
             public Builder baseUrl(String baseUrl) {}
             public Builder addConverterFactory(Converter.Factory factory) {}
             public Builder addCallAdapterFactory(CallAdapter.Factory factory) {}
             public Builder callbackExecutor(Executor executor) {}
             public Retrofit build() {}
         }
     }
  2. 创建Retrofit的实例

    Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("https://api.github.com/")
                .addCallAdapterFactory(null)
                .addConverterFactory(null)
                .build();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值