建造者模式Builder

简介

一个复杂的对象有很多组成成分, 如汽车, 车轮, 方向盘, 发动机,等等. 为了在构建过程中对外部隐藏实现细节, 就可以使用 Builder 模式将部件和组装过程分离, 使得构建过程和部件都可以自由扩展, 两者之间的耦合也将到了最低.

  • 定义 : 将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示.
  • 场景 :
    • 当初始化一个队形特别复杂, 参数特别多, 且有很多参数都具有默认值时.
    • 相同的方法, 不同的执行顺序, 产生不同的事件结果时
    • 多个部件或零件, 都可以装配到一个对象中, 但是产生的运行结果又不相同.

举例

一个网络库的Builder

 public static final class Builder {
        //只列出一些常用的功能,默认如下
        private int connectTimeOut = -1;
        private int readTimeOut = -1;
        private boolean doInput = true;
        private boolean doOutput = false;
        private boolean useCaches = false;
        //请求头
        private final List<String> keys = new ArrayList<>();
        private final List<String> values = new ArrayList<>();
        private CookieJar cookieJar;

        public Builder() {
        }

        public Builder cookieJar(CookieJar cookieJar) {
            this.cookieJar = cookieJar;
            return this;
        }

        ...

        public NetworkConnection build() {
            return new NetworkConnection(connectTimeOut, readTimeOut, doInput, doOutput, useCaches, keys, values, cookieJar);
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值