서론
정적 팩터리와 생성자는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다.
선택적 매개변수가 많을 때 방법
- 점층적 생성자 패턴
- 매개변수가 많아지면 코드를 작성하거나 읽기 어렵다
- 자바 빈즈 패턴 (setter 메서드 호출)
- 객체 하나 만들기 위해, 메서드 여러번 호출
- 객체가 완전히 생성되기 전까지 일관성이 무너진 상태에 놓임
- 빌더 패턴
- 필요한 객체를 직접 만드는 대신,
필수 매개변수만으로 생성자(or 정적팩토리 메서드)를 호출해 빌더 객체를 얻는다. - 빌더 객체가 제공하는 일종의 setter 메서드들로 원하는 선택 매개변수들을 설정
- 최종적으로 build 매서드를 호출해 불변인 객체를 얻는다.
- 필요한 객체를 직접 만드는 대신,
핵심 정리
생성자나 정적 팩터리가 처리해야 할 매개변수가 많다면 빌더 패턴을 선택하는게 더 낫다.
점층적 생성자 패턴의 안전성과 자바 빈즈 패턴의 가독성을 겸비했다.
'개발 > JAVA' 카테고리의 다른 글
[Java] [이펙티브 자바][01] 생성자 대신 정적 팩토리 메서드를 고려하라 (0) | 2022.12.27 |
---|---|
[Java] 스터디 01 (0) | 2022.12.27 |