@builder建造者模式

Lombok的@Builder注解简化了Java中手动编写建造者模式的过程,通过自动生成内部静态类实现对象属性的链式设置。无需手动编写构造函数,提高代码清晰度和效率。
摘要由CSDN通过智能技术生成

@Builder 是 Lombok 提供的一个注解,用于自动生成建造者模式的相关代码通过在类上添加 @Builder 注解,Lombok 会自动生成一个内部静态类作为建造者,并在原始类中添加一个私有构造函数。

使用 @Builder 注解可以简化手动编写建造者模式的代码,使代码更加简洁易读。它可以自动生成链式调用的方法来设置对象的属性,并且可以在需要时进行可选属性的设置。

下面是一个使用 @Builder 注解的示例:

import lombok.Builder;
import lombok.Getter;

@Getter
@Builder
public class Person {
    private String name;
    private int age;
    private String address;
    private String phoneNumber;
}

在上面的示例中,我们使用 @Builder 注解标注了 Person 类。Lombok 会自动生成一个内部静态类 PersonBuilder 作为建造者,并在 Person 类中添加一个私有构造函数。

现在,我们可以使用自动生成的建造者来创建 Person 对象,如下所示:

Person person = Person.builder()
    .name("John")
    .age(30)
    .address("123 Main St")
    .phoneNumber("555-1234")
    .build();

在上面的代码中,我们使用链式调用的方式设置 Person 对象的属性,并通过 build() 方法来构建最终的对象。build() 方法会返回一个 Person 对象。

@Builder 注解还具有其他一些可选的配置选项,例如可以使用 @Builder.Default 注解设置属性的默认值,可以使用 @Singular 注解处理集合类型的属性等。通过这些配置选项,可以进一步定制生成的建造者模式的代码。

需要注意的是,使用 @Builder 注解需要事先在项目中引入 Lombok 相关的依赖,并确保 IDE 配置中已启用 Lombok 插件,以使 Lombok 注解生效。

总而言之,@Builder 是 Lombok 提供的一个注解,用于自动生成建造者模式的相关代码。它可以简化手动编写建造者模式的代码,使代码更加简洁易读。通过使用 @Builder 注解,可以方便地创建和设置对象的属性,并生成最终的对象。

下面再举例一些使用建造者模式的例子:

  1. 创建用户对象(User):
    import lombok.Builder;
    import lombok.Getter;
    
    @Getter
    @Builder
    public class User {
        private String username;
        private String password;
        private String email;
        private boolean isActive;
    }

    通过 @Builder 注解,我们可以轻松创建用户对象,并使用链式调用设置属性。

  2. 构建图书对象(Book):
    import lombok.Builder;
    import lombok.Getter;
    
    @Getter
    @Builder
    public class Book {
        private String title;
        private String author;
        private String publisher;
        private int year;
        private double price;
    }

    在这个示例中,我们使用 @Builder 注解创建了一个图书对象,并可以方便地设置图书的各个属性。

  3. 创建订单对象(Order):
    import lombok.Builder;
    import lombok.Getter;
    
    import java.util.List;
    
    @Getter
    @Builder
    public class Order {
        private String orderId;
        private List<String> items;
        private String customerName;
        private String shippingAddress;
    }

    通过 @Builder 注解,我们可以快速构建订单对象,并设置订单的各个属性。

  4. 构建配置对象(Configuration):
    import lombok.Builder;
    import lombok.Getter;
    
    @Getter
    @Builder
    public class Configuration {
        private String appName;
        private String databaseUrl;
        private String username;
        private String password;
        private int port;
    }

    在这个示例中,我们使用 @Builder 注解创建了一个配置对象,并可以使用链式调用设置配置的各个属性。

    通过使用 @Builder 注解,可以简化创建复杂对象的过程,并提供了一种清晰、简洁的方式来设置对象的属性。它遵循建造者模式的原则,将对象的构建过程与其表示分离,并提供了灵活性和可读性。同时,使用 Lombok 的 @Builder 注解还可以减少手动编写建造者模式的代码量。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小懒懒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值