item3. Private 생성자나 열거 타입으로 싱글턴임을 보증하라

감자고구마·2022년 2월 11일
0

이펙티브자바3rd

목록 보기
4/58

싱글턴이란?

  • 싱글턴이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다.

But

클래스를 싱글턴으로 만들면 이를 사용하는 클라이언트를 테스트하기 어려워질 수 있다

싱글턴을 방드는 방식은 2가지

  1. public static 멤버가 final 필드인 방식
  • final의 정의
    : 한 번만 할당 가능하다는 선언
    : 즉, 재할당하려고 하면 컴파일 오류가 발생하여 바로 확인이 가능하다.
public class Elvis {
	public static final Elvis INSTANCE = new Elivs();
    private Elvis() {...}
    
    public void leaveTheBuilding() {...}
 }
  1. 정적팩터리 방식
public class Elvis {
	public static final Elvis INSTANCE = new Elivs();
    private Elvis() {...}
    public static Elvis getInstance() { return INSTANCE;}
    
    public void leaveTheBuilding() {...}
 }
  1. 열거 타입 방식의 싱글턴
public enum Elvis {
	INSTANCE;
    public void leaveTheBuilding() {...}
}
profile
파릇파릇한개발자

0개의 댓글

관련 채용 정보