반응형
이펙티브 자바 3판 2장 아이템2
-
[이펙티브 자바 3판 2장] 아이템2. 생성자에 매개변수가 많다면 빌더를 고려하자책정리/이펙티브 자바 3판 2020. 7. 25. 18:05
점층적 생성자 패턴도 쓸 수는 있지만, 매개변수 개수가 많아지면 클라이언트 코드를 작성하거나 읽기 어렵다. setter 를 통해서 객체값 세팅(자바빈즈 패턴) 에서는 객체 하나를 만들기 위해 메서드를 여러 개 호출해야 하고, 객체가 완전히 생성되기 전까지는 일관성이 무너지게 된다. 자바빈즈 패턴에서는 클래스를 불변으로 만들 수 없다. 이러한 객체 불변과 점층적 생성자 패턴의 대안은 빌더 패턴이다. 빌더는 생성할 클래스 안에 정적 멤버 클래스로 만들어두는게 보통이다. // 코드 2-3 빌더 패턴 - 점층적 생성자 패턴과 자바빈즈 패턴의 장점만 취했다. (17~18쪽) public class NutritionFacts { private final int servingSize; private final int..