https://inpa.tistory.com/entry/GOF-💠-빌더Builder-패턴-끝판왕-정리

<aside> 💡 빌더 패턴(Builder Pattern)

복잡한 객체의 생성 과정과 표현 방법을 분리하여 다양한 구성의 인스턴스를 만드는 생성 패턴이다. 생성자에 들어갈 매개 변수를 메서드로 하나하나 받아들이고 마지막에 통합 빌드해서 객체를 생성하는 방식

서브웨이 사례 재료가 주문하는 사람 마음대로 결정되므로 선택적 재료들을 보다 유연하게 받아들여 다양한 타입의 인스턴스를 생성할 수 있어 클래스의 선택적 매개변수가 많은 상황에서 유용하게 사용됨

</aside>

빌더 패턴 탄생 배경

생성자 패턴 1. 점층적 생성자 패턴

생성자 패턴 2. JavaBeans Pattern

생성자 패턴 3. Builder Pattern

계층적으로 설계된 클래스

Builder 패턴 장점

1. 객체 생성 과정을 일관된 프로세스로 표현

// 생성자 방식
Student student1 = new Student(2016120091, "홍길동", "freshman", "010-5555-5555");

// 빌더 방식
Student student2 = new StudentBuilder()            
		.id(2016120091)            
		.name("임꺽정")            
		.grade("Senior")            
		.phoneNumber("010-5555-5555")            
		.build();

2. 디폴트 매개변수 생략을 간접적으로 지원