목록기술 서적/Effective Java (3)
개발자는 기록이 답이다
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..
Static Factory Method(정적 메소드) 클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단 : public 생성자 클래스는 생성자와 별도로 정적 팩터리 메서드(static factory method)를 제공할 수 있다 // boolean의 기본 타입의 값을 받아 Boolean 객체 참조로 변환 public static Boolean valueOf(boolean b){ return b ? Boolean.TRUE : Boolean.FALSE; } ※ 정적 팩터리 메서드는 디자인 패턴에서의 팩터리 메서드(Factory Method)와다르다. 디자인 패턴 중에 이와 일치하는 패턴은 없다. 장점 1. 이름을 가질 수 있다. (동일한 시그니처의 생성자를 두개 가질 수 없다.) 생성자에 넘기는 매개변수..