Builder 패턴은 복잡한 객체를 단계별로 구성하여, 구성을 표현으로부터 분리합니다. 많은 매개변수나 선택적 부분을 가진 객체에 특히 유용하며, 다루기 힘든 생성자 대신 읽기 쉽고 유연한 객체 구성을 만들어냅니다.
Builder가 해결하는 문제
많은 매개변수(특히 선택적인 것들)를 가진 객체는 문제를 일으킴:
✗ 거대한 생성자: new Pizza('large', true, false, true, 'thin', false, ...) →
읽기 어려움(어떤 boolean이 무엇?); 사용이 어려움; 오류가 발생하기 쉬움
✗ 많은 생성자 오버로드 (telescoping constructor) → 지저분함
→ Builder는 그런 객체를 구성하는 깔끔하고 읽기 쉬운 단계별 방법을 제공함.
Builder의 작동 방식
pizza = ()
.()
.()
.()
.()
.();
