생성자에 매개변수가 많은 때는 빌더를 고려하자
생성자는 선택적인 매개변수가 있을 경우, 신축성있게 처리하지 못 한다.
텔리스코핑 생성자 패턴
- 매개변수의 수가 증가하면 버거움
- 코드 가독성 떨어짐
자바빈즈 패턴
- 객체의 일관성 유지 안됨
- 불변 클래스 가능성 배제 -> 쓰레드에서 안정성을 유지하려면 추가적인 노력 필요
- freezing -> 적용이 어려움
빌더 패턴
- (텔리스코핑의 안정성 + 자바빈즈의 가독성) 결합
- 파이썬의 named 매개변수처럼 동작
장점
- 부적합한 매개변수 전달시 이상 유무를 검출할 수 있다.
- 여러 개의 가변인자를 가질 수 있다.
단점
- 어떤 객체를 생성하기 이전에 그 객체에 대한 빌더를 생성해야 한다.
- 코드가 (텔레스코핑 패턴에 비해) 길어진다. -> 매개변수가 4개 이상일 때 사용하자.
많은 매개변수를 갖게될 클래스를 설계할 때는 빌더 패턴이 좋은 선택이다.