使用前提是:IDEA或eclipse要安装lombok插件

1.创建实体类,在类上面加上@Builder注解

对象构建的时候使用:
OrderBatching orderBatching = OrderBatching.builder()
.batchingId(goodsBatching.getId())
.batchingName(goodsBatching.getBatchingName())
.price(goodsBatching.getModifyPrice())
.quantity(orderItemDto.getQuantity())
.totalAmount(batchingAmount.longValue())
.createBy(currentUser.getUsername())
.updateBy(currentUser.getUsername())
.build();

如果不这样做的话就是set方法一个一个设置

如果不使用lombok插件的话可以这样:

package xiao.javase.designPattern.builder;

/**
* @author xiaoss
* @since 1.0, 2022年04月20日 16:46:41
*/

public class Student {

private String name;

private int age;

private int num;

private String email;

// 提供一个静态builder方法
public static Student.Builder builder() {
return new Student.Builder();
}

// 外部调用builder类的属性接口进行设值。
public static class Builder {
private String name;

private int age;

private int num;

private String email;

public Builder name(String name) {
this.name = name;
return this;
}

public Builder age(int age) {
this.age = age;
return this;
}

public Builder num(int num) {
this.num = num;
return this;
}

public Builder email(String email) {
this.email = email;
return this;
}

public Student build() {
// 将builder对象传入到学生构造函数
return new Student(this);
}
}

// 私有化构造器
private Student(Builder builder){
name = builder.name;
age = builder.age;
num = builder.num;
email = builder.email;
}

@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", num=" + num +
", email='" + email + '\'' +
'}';
}

public static void main(String[] args) {
Student student = Student.builder().name("小草").num(1).age(18).email("小草@163.com").build();
System.out.println(student);
}
}
Builder模式(建造者模式)
实现步骤:
1.在要构建的类内部创建一个静态内部类 Builder
2.静态内部类的参数与构建类一致
3.构建类的构造参数是 静态内部类,使用静态内部类的变量一一赋值给构建类
4.静态内部类提供参数的 setter 方法,并且返回值是当前 Builder 对象
5.最终提供一个 build 方法构建一个构建类的对象,参数是当前 Builder 对象