Java中的builder() 方法【建造者模式】
建造者模式定义
🚀将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示
使用场景
🅰️当一个类的构造函数参数个数有多个,而且这些参数部分是可选参数时,可以考虑使用构造者模式。
🅱️当在构建一个对象时,如果对象属性比较多,我们可以使用构造者模式。
👇示例:
实现
package com.wt.builder;
/**
* @Description
* @Author WT
* @Date 2023-03-19 21:23
*/
public class User {
// 必选属性
private Integer userId;
// 必选属性
private String username;
private String gender;
private String hobby;
public User(Builder builder) {
this.userId = builder.userId;
this.username = builder.username;
this.gender = builder.gender;
this.hobby = builder.hobby;
}
public static class Builder{
private Integer userId;
private String username;
private String gender;
private String hobby;
public Builder(Integer userId, String username) {
this.userId = userId;
this.username = username;
}
public void setGender(String gender) {
this.gender = gender;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
public String getGender() {
return gender;
}
public String getHobby() {
return hobby;
}
public User build(){
return new User(this);
}
}
}
调用
public static void main(String[] args) {
User user = new User.Builder(1001,"张三")
.setHobby("游戏")
.setGender("男")
.build();
}
使用 Lombok 注解实现【简洁】
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class User {
// 必选属性
private Integer userId;
// 必选属性
private String username;
private String gender;
private String hobby;
}