Java中Builder模式通过独立Builder类实现链式构建,其核心是私有构造、final字段、return this链式调用、build阶段校验与组装,确保对象不可变、完整且封装严格。

封装在 Java 中通过 Builder 模式实现链式构建,核心是把对象的构造逻辑从类本身剥离,用一个独立的 Builder 类控制属性赋值过程,并通过方法返回 this 实现链式调用,同时保证最终对象的不可变性与完整性。
Builder 类需持有目标类的私有字段副本
Builder 不直接操作目标对象,而是在内部维护一组与目标类字段一一对应的私有变量。这样能避免外部绕过验证直接修改,也便于在 build() 阶段统一校验和组装。
- 所有字段在 Builder 中声明为 private,不暴露 getter/setter
- 每个 setter 方法(如 name(String n))只赋值并 return this
- build() 方法负责校验必要字段是否已设置,再 new 出目标对象
目标类应设为不可变且私有构造
真正被构建的对象(如 Person、Order)必须隐藏构造器,仅允许 Builder 创建实例,从而确保所有对象都经过统一路径初始化。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 目标类构造器设为 private,禁止 new Person(...) 直接调用
- 字段全部用 final 修饰,初始化后不可更改
- 不提供 public 的 setter 方法,破坏封装性
链式调用靠每个方法返回 this 实现
所谓“链式”,本质是每个配置方法(如 age(25).city("Beijing"))返回当前 Builder 实例,让调用者能连续调用下一个方法。
立即学习“Java免费学习笔记(深入)”;
- 方法签名形如 public Builder name(String n) { this.name = n; return this; }
- return this 是关键,不是 return null 或 new Builder()
- IDE 可自动补全后续方法,提升可读性和开发效率
支持可选参数与默认值,提升灵活性
Builder 模式天然适合处理含大量可选字段的对象,可在 Builder 构造时预设默认值,或在 build() 中按需填充。
- 在 Builder 的无参构造中初始化默认值:this.status = "active";
- 对布尔型/数值型字段,可用包装类型(Boolean、Integer)区分“未设置”与“显式设为 false/0”
- 复杂默认逻辑(如生成 UUID、当前时间)放在 build() 内执行,避免提前计算

















