일반적인 객체 생성은 객체를 정의하고 객체를 생성할 때 생성자를 통해 값을 입력받아 생성한다.
Name name = new Name("홍길동",12,"남자");
하지만 생성자만을 통해 객체를 생성하면 몇가지 단점들이 있어 이를 보완하고자 생긴 것이 Builder를 통해 입력 받는 방법이다.
Name name = Name.builder()
.name("홍길동")
.age(12)
.gender("남자")
.build();
Name name = new Name("홍길동",12,"남자","회사원",180,70);
따라서 Builder를 통해 각각 파라미터가 의미하는 값이 무엇인지 알기 쉽다.
Name name = Name.builder()
.name("홍길동")
.age(12)
.gender("남자")
.job("회사원")
.height(180)
.weight(70)
.build();
하지만 Builder를 사용하면 파라미터의 이름과 값을 매칭시켜서 저장하기 때문에 순서에 관여하지 않는다.
Name name = Name.builder()
.name("홍길동")
.gender("남자")
.age(12)
.weight(70)
.job("회사원")
.height(180)
.build();
@Builder
public class Person{
private String name;
private int age;
private String gender;
private String job("회사원")
private int height(180)
private int weight(70)
}
값을 저장하는 클래스(DTO)에 붙여주면 어디서든지 Builde를 통해 값을 위와 같이 넣을 수 있다.
※ 참고자료 : https://pamyferret.tistory.com/67