[이펙티브 자바] 아이템 03. private 생성자나 열거 타입으로 싱글턴임을 보증하라

2025. 7. 29. 21:33·언어(java, kotlin, python ...)

public static final 필드를 이용한 싱글턴 구현 방식의 동작 원리와 장·단점을 설명하시오.

 

클래스 로딩 시 한 번만 실행되어 인스턴스를 생성하며, 간결하고 JVM 클래스 로더가 보장하는 스레드 안정성을 갖는다. 다만, 테스트용 가짜 객체로 교체하기 어렵고 애플리케이션 시작 시 불필요한 리소스가 할당될 수 있다.

 

 

정적 팩터리 메서드(getInstance)를 이용한 싱글턴 구현 방식이 public static final 필드 방식에 비해 갖는 유연성에 대해 설명하시오

getInstance() 내부 로직만 수정하면 API 호출부를 건드리지 않고도 반환 객체를 멀티톤, 스레드 별 인스턴스, 테스트용 가짜 객체 등으로 유연하게 변경할 수 있다.

 

 

열거 타입(enum)을 이용한 싱글턴 구현 방식의 주요 장점을 서술하시오

자바 언어 스펙상 enum은 직렬화 시에도 Instance가 보장되고 리플렉션으로 생성이 불가능해 완벽한 싱글턴을 제공한다. 별도 동기화 없이도 간결하게 구현할 수 있다.

'언어(java, kotlin, python ...)' 카테고리의 다른 글

자바의 체크 예외 vs 언체크 예외(with @Transactional)  (0) 2026.06.24
[이펙티브 자바] 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라 / 아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라  (3) 2025.07.30
[이펙티브 자바] 아이템 02. 생성자에 매개변수가 많다면 빌더를 고려하라  (0) 2025.07.28
[이펙티브 자바] 아이템 01. 생성자 대신 정적 팩토리 메소드를 고려하라  (0) 2025.07.25
[Kotlin] 기본 문법 정리  (1) 2025.03.27
'언어(java, kotlin, python ...)' 카테고리의 다른 글
  • 자바의 체크 예외 vs 언체크 예외(with @Transactional)
  • [이펙티브 자바] 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라 / 아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라
  • [이펙티브 자바] 아이템 02. 생성자에 매개변수가 많다면 빌더를 고려하라
  • [이펙티브 자바] 아이템 01. 생성자 대신 정적 팩토리 메소드를 고려하라
dev_leejaehyeok97
dev_leejaehyeok97
매일매일 공부하는 개발자 이재혁의 블로그입니다.
  • dev_leejaehyeok97
    개발자 이재혁님의 블로그
    dev_leejaehyeok97
  • 전체
    오늘
    어제
    • 분류 전체보기 (39)
      • JPA & Hibernate (1)
      • 운영체제 (0)
      • 네트워크 (5)
      • DB (8)
      • 코딩테스트 (0)
      • 아키텍처 (7)
      • 회고 (1)
      • 언어(java, kotlin, python ..... (6)
      • 우아한 테크코스 프리코스 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    정렬방식
    좋아요api
    filesort
    redis
    분산락
    MySQL
    Using temporary
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
dev_leejaehyeok97
[이펙티브 자바] 아이템 03. private 생성자나 열거 타입으로 싱글턴임을 보증하라
상단으로

티스토리툴바