객체를 정의하고 그 객체를 생성 할 때 보통 생성자를 통해 생성하는것을 생각하는데
Bag bag = new Bag("name", 1000, "memo");
생성자를 통해 객체를 생성하는 것은 몇가지 단점
매개변수가 많아지면 가독성이 좋지 않다
정해진 파라미터 순서대로 값을 넣어줘야 하기 때문에 실수를 하면 잘못된 순서로 매개변수를 전달 될 수 있다
이 있어 객체를 생성하는 별도 builder를 두는 방법을 사용하기도 한다
이 방법을 builder pattern 이라고 한다
객체를 생성할 수 있는 빌더를 builder() 함수를 통해 얻고 거기에 세팅하고자 하는 값을 세팅하고 마지막에 builder()를 통해 빌더를 작동시켜 객체를 생성한다
이 때
직접 객체를 생성하지 않고 필수 매개변수만으로 builder 객체를 생성할 수 있고
builder 객체가 제공하는 일종의 setter메소드를 사용하여 객체를 완성해갈 수 있다
Bag bag = Bag.builder()
.name("name")
.money(1000)
.memo("memo")
.build();
builder pattern의 장점
builder pattern의 단점