使用前提是: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 对象