선택적 매개변수가 많을 때 클래스는 어떻게 대응해야할까. 가장 간단한 방법은 점층적 생성자 패턴이다. 하지만 이는 매개변수 개수가 많아지면 클라이언트 코드를 작성하거나 읽기 어렵다. 다음으로 생각해볼 방법은 자바빈즈 패턴이다. 코드가 읽기 쉬워지는 장점이 있지만 객체 하나를 만들기 위해서는 메소드를 여러개 호출해야 하며 객체과 완전히 생성되기 전까지는 일관성이 무너진 상태에 놓이게 된다. 또한 자바빈즈에서는 불변 객체도 불가능하며 스레드 안전성을 얻기 위해 추가적으로 작업을 해주어야 한다.
빌더 패턴
빌더 패턴은 필요한 객체를 직접 만드는 대신 필수 매개변수만으로 생성자를 호출해 빌더 객체를 얻는다.