본문 바로가기

공부/이펙티브자바8

3. private 생성자나 열거타입으로 싱글턴임을 보증 객체 생성과 파괴 (feat. 이펙티브자바-2) 싱글턴 : 인스턴스를 오직 하나만 생성할 수 있는 클래스 -> 클래스를 싱글턴으로 만들면 이를 사용하는 클라이언트를 테스트하기 어려워짐 방법1. 1. 생성자 private 2. 유일한 인스턴스에 접근할 수 있는 public static 멤버를 하나 만든다. public class Elvis{ public static final Elvis INSTANCE = new Elvis(); private Elvis() { } } 생성자(private Elvis)는 public static final 필드인 Elvis.INSTANCE를 초기화할 때 딱 한번 호출된다. 방법2. 1. 생성자 private 2. 유일한 인스턴스에 접근할 수 있는 public static 멤.. 2022. 3. 3.
1. 생성자 대신 정적 팩터리 메서드를 고려하자 객체 생성과 파괴 (feat. 이펙티브자바-2) 객체의 생성과 파괴를 다루겠다. 1. 생성자 대신 정적 팩터리 메서드를 고려 public static boolean valueOf(boolean b){ return b ? Boolean.TRUE : Boolean.FALSE; } - 이름을 가진다. - 호출될 때마다 인스턴스를 새로 생성하지 않는다. - 반환 타입의 하위 타입 객체를 반환할 수 있다. - 매개변수에 따라 다른 객체를 반환할 수 있다. - 상속을 하려면 public이나 protected 생성자가 필요하니, 정적 팩터리 메서드만 제공하면 하위클래스를 만들 수 없다. - 프로그래머가 찾기 힘들가 - of : 매개변수 n개 / 받아 적합한 인스턴스.. 2022. 3. 3.