设计模式:Builder模式

本文介绍了Builder模式,这是一种创建型设计模式,用于分步骤构建复杂对象。Builder模式将构造过程和表示分离,允许用户在不了解内部实现的情况下精细控制对象构造流程,降低耦合度。
摘要由CSDN通过智能技术生成
1.Builder模式的定义

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

Builder模式是一步一步创建一个复杂对象的创建性模式,它允许用户在不知道内部细节的情况下(对外隐藏实现细节),可以更精细地控制对象的构造流程,使得构建过程和部件都可以自由扩展,两者之间的耦合也降到最低

2.Builder模式的使用场景
(1)相同的方法,不同的执行顺序,产生不同的事件结果时
(2)多个部件或零件都可以装配到一个对象中(可以选择性的给对象定义某些属性,或者不定义某些属性(可能不定义的属性有默认值吧)),但是产生的运行结果又不相同时
(3)产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用,这个时候使用构造者模式非常合适
(4)当初始化一个对象特别复杂时,如参数多,且很多参数都具有默认值时
3.Builder模式的实例
// 通常作为内部类出现
public static final class Builder {

    private Context mContext;
    private String wsUrl;
    private boolean needReconnect = true;
    private OkHttpClient mOkHttpClient;

    public Builder(Context val) {
      mContext = val;
    }

    public Builder wsUrl(String val) {
      wsUrl = val;
      return this;
    }

    public Builder client(OkHttpClient val) {
      mOkHttpClient = val;
      return this;
    }

    public Builder needReconnect(boolean val) {
      needReconnect = val;
      return this;
    }

    public WsManager build() {
      return new WsManager(this);
    }
  }
其中WsManager 的构造函数的实现如下:
 public WsManager(Builder builder) {
    mContext = builder.mContext;
    wsUrl = builder.wsUrl;
    isNeedReconnect = builder.needReconnect;
    mOkHttpClient = builder.mOkHttpClient;
    this.mLock = new ReentrantLock();
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值