생성자나 정적 팩터리 메서드 둘 다 선택적 파라미터가 많은 경우에 문제가 있다. 1. 점층적 생성자 패턴 영양 성분표를 나타내는 클래스를 예로 들어보자. public class NutritionFacts { private final int servingSize; // 필수로 입력되어야하는 파라미터 private final int servings; // 필수 private final int calories; // 선택 private final int fat; // 선택 private final int protein; // 선택 private final int carbohydrate // 선택 public NutritionFacts(int servingSize, int servings) { this(serv..
클래스를 통해 객체를 만드는 방법은 세 가지가 있다. public으로 선언된 생성자 정적 팩터리 메서드 빌더 패턴 위의 세 가지 방법 중 가장 일반적인 것은 첫 번째 방법인데, 이 대신에 정적 팩터리 메서드를 사용할 수는 없는지 고려해보자. 정적 팩터리 메서드를 이용해 객체를 만드는 하나의 예시는 아래와 같다. public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 1. 생성자 대신 정적 팩터리 메서드를 사용할 때의 장점 첫 번째, 생성자와는 달리 정적 팩터리 메서드에는 이름이 있다. 예를 들어, 소수일 가능성이 높은 BigInteger 객체를 생성하는 생성자 BigInteger(int, int, Rando..