当前位置: 首页 > article >正文

建造者模式构建对象

目录

一、创建类

二、用法

三、完整代码


一、创建类

@Builder
public class User {
    private final String name;
    private final int age;
    @Builder.Default private String address = "Unknown";
    @Builder.Default private String email = "N/A";
}

二、用法

(1) 链式调用:可读性高
User user = User.builder()
    .name("Alice")
    .age(25)
    .address("New York")
    .email("alice@example.com")
    .build();
  • 自文档化:代码即文档,无需查看类定义即可理解参数意义。

(2) 处理多参数和可选参数
  • 灵活构造:可选参数可以跳过,必填参数强制要求设置。

  • 避免“伸缩构造函数”问题(无需为不同参数组合重载多个构造函数)。

(3) 支持不可变对象
  • 对象一旦通过 build() 创建,所有属性变为 final,保证线程安全和状态一致性。

  • 普通 Setter 方法会破坏不可变性。

(4) 分离构造逻辑
  • 构造过程通过 Builder 类封装,与目标类解耦。

  • 可以在 build() 方法中添加校验逻辑,确保对象有效性。

三、完整代码

@Builder
public class User {
    private final String name;
    private final int age;
    @Builder.Default private String address = "Unknown";
    @Builder.Default private String email = "N/A";
}

// 使用方式
User user = User.builder()
    .name("Alice")
    .age(25)
    .address("New York")
    .email("alice@example.com")
    .build();


http://www.kler.cn/a/547964.html

相关文章:

  • CentOS7 安装配置FTP服务
  • 鸿蒙开发:熟知@BuilderParam装饰器
  • STM32F10X 启动文件完整分析
  • Xilinx FPGA开发指南-7系列FPGA配置引脚定义
  • Vue 3 30天精进之旅:Day 25 - PWA支持
  • 学习sql的资源:sql练习平台;在线编辑器,免费sql教程,免费sql书籍
  • (LLaMa Factory)大模型训练方法--监督微调(Qwen2-0.5B)
  • Linux性能分析工具Trace使用
  • 【漫话机器学习系列】091.置信区间(Confidence Intervals)
  • 【Linux】:网络协议
  • C#关于静态关键词static详解
  • dl学习笔记(11):VGG,NIN,GooleNet经典架构pytorch实现
  • Linux第107步_Linux之PCF8563实验
  • jenkins服务启动-排错
  • SCI学术论文图片怎么免费绘制:drawio,gitmind
  • 深度学习框架TensorFlow怎么用?
  • 牛客周赛 Round 80
  • 批处理效率提升技巧
  • 设备智能化无线通信,ESP32-C2物联网方案,小尺寸芯片实现大功能
  • MyBatis拦截器终极指南:从原理到企业级实战