public class User {
private int id;
private String username;
private String password;
private String email;
public static User builder() {
return new User();
}
public User id(int id) {
this.id = id;
return this;
}
public User username(String username) {
this.username = username;
return this;
}
public User password(String password) {
this.password = password;
return this;
}
public User email(String email) {
this.email = email;
return this;
}
public static void main(String[] args) {
User user = User.builder().username("ssar").email("[email protected]");
User user2 = User.builder().username("cos").id(1);
System.out.println(user);
System.out.println(user2);
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\\'' +
", password='" + password + '\\'' +
", email='" + email + '\\'' +
'}';
}
}

빌더 패턴의 정의
빌더 패턴(Builder Pattern)은 객체 생성을 더 유연하고 가독성 있게 만들기 위한 디자인 패턴입니다. 이 패턴은 객체를 생성하는 복잡한 과정을 추상화하고, 객체를 생성하는 방법을 분리하여 사용자가 객체를 쉽게 생성할 수 있도록 합니다. (생성 디자인 패턴, 최초에 초기화 하는 패턴)
빌더 패턴의 장점
빌더 패턴을 쓰면
우리가 필요한 생성자를 모두 만들어둘 필요가 없어진다. 그냥 다 만들어두고
필요한거만 찾아서 적어줄 수 있다.