Effective JAVA
2. 생성자에 매개변수가 많다면 빌더를 고려하라
상국이
2021. 8. 22. 17:56
728x90
점층적 생성자 패턴
단점
매개변수가 많아지면 코드를 작성하거나 읽기 힘들다.
- 매개변수의 개수, 의미를 주의해서 확인해야 한다..
- 타입이 같은 매개변수가 연달아 늘어 있으면 찾기 어려운 버그로 이어질 수 있다.
-> 실수로 매개변수의 순서를 바꿔 전달해도 컴파일러단에서 확인할 수 없다.
JavaBeans 패턴
* 점층적 패턴의 단점을 보완하기 위해 등장
단점
- 객체를 하나 만들기 위해 메서드를 여러개 호출해야 한다.
- 객체가 완전히 생성되기 전까지 일관성(consistency)이 무너진 상태에 놓이게 된다.
- 스레드 안전성을 얻기 위해 프로그래머가 추가 작업을 해줘야 한다.
Builder 패턴
* 매개변수 중 다수가 필수가 아니거나 같은 타입이면 점층적 생성자보다 코드를 읽고 쓰기가 훨씬 간결하고, JavaBeans보다 안전하다.
장점
- 계층적으로 설계된 클래스와 함께 쓰기에 좋다.
- 생성자나 정적 팩터리가 처리해야 할 매개변수가 많다면 가독성이 좋다.
단점
- 객체를 만들기 위해 빌더부터 만들어야 한다.
-> 빌더 생성 비용이 크진 않지만 성능에 민감한 상황에서는 문제가 될 수 있다.
- 점층적 생성자 패턴 보다는 코드가 장황하다.
* 이 글은 Effective java를 공부하면서 작성하였습니다.
728x90