STUDY/이펙티브 자바
-
아이템3. private 생성자나 열거 타입으로 싱글턴임을 보증하라STUDY/이펙티브 자바 2023. 11. 17. 13:59
싱글턴(singleton) 인스턴스를 오직 하나만 생성할 수 있는 클래스 무상태(stateless) 객체 설계상 유일해야 하는 시스템 컴포넌트 싱글턴을 생성하는 방식 1. public static final 필드 방식 public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { // private 생성자는 Elvis.INSTANCE 를 초기화할 때 딱 한 번 호출된다. } public void leaveTheBuilding() { } } private 생성자는 public static final 필드를 초기화할 때 딱 한 번만 호출된다. public이나 protected 생성자가 없으므로 클래스가 초기화될 ..
-
아이템2. 생성자에 매개변수가 많다면 빌더를 고려하라.STUDY/이펙티브 자바 2023. 11. 17. 13:58
선택적 매개변수가 많은 클래스 생성 방식 점층적 생성자 패턴(telescoping constructor pattern) 자바빈즈 패턴(JavaBeans pattern) 빌더 패턴(Builder pattern) 1. 점층적 생성자 패턴 필수 매개변수만 받는 생성자, 필수 매개변수와 선택 매개변수 1개를 받는 생성자, 선택 매개변수를 2개까지 받는 생성자, ... 형태로 선택 매개변수를 전부 다 받는 생성자까지 늘려가는 방식 점층적 생성자 패턴을 사용해서 클래스의 인스턴스를 만들려면 원하는 매개변수를 모두 포함한 생성자 중 가장 짧은 것을 골라 호출하면 되는데, 설정하길 원치 않는 매개변수까지 포함되기 쉽다. 하지만 매개변수가 많아지는 경우 클라이언트 코드를 작성하거나 읽기 어려워 진다. 코드를 읽을 때 각..