목록이팩티브자바 (2)
개발자는 기록이 답이다
singleton 이란 인스턴스를 오직 하나만 생성할 수 있는 클래스이다. 싱글톤이 전형적인 예로 함수(item24)와 같은 무상태(stateless)객체나 설게상 유일해야 하는 시스템 컴포넌트를 들 수 있다. 인터페이스를 구현한 Singleton 객체가 아니라면 싱글톤 인스턴스를 mock 객체로 만들 수 없어 이를 사용하는 클라이언트를 테스트하기 어려워 질 수 있다. 1. public static final 필드 방식 public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() {...} public void leaveTheBuilding(){...} } private 생성자는 public static fin..
정적 팩터리와 생성자에는 똑같은 제약이 하나 있다. 선택적 매개변수가 많을때 적절히 대응하기 어렵다는 점이다. 생성자 패턴 1. 점층적 생성자 패턴 필수 매개변수만 받는 생성자, 필수 매개변수와 선택 매개변수 1개를 받는 생성자, 선택 매개변수 2개까지 받는 생성자,... 형태로 선택 매개변수를 전부 다 받는 생성자자까지 늘려가는 방식이다. 즉, 필수 인자를 받는 생성자를 정의한 후, 선택적 인자를 하나씩 추가해가며 정의하는 것이다. package org.example.item02; public class NutritionFacts { private final int servingSize; // 필수 private final int servings; // 필수 private final int calori..