프로그래밍 언어/JAVA

Java에서 싱글 톤 패턴을 구현하는 효율적인 방법

Rateye 2021. 7. 30. 10:25
728x90
반응형
질문 : Java에서 싱글 톤 패턴을 구현하는 효율적인 방법은 무엇입니까?

Java에서 싱글 톤 패턴을 구현하는 효율적인 방법은 무엇입니까?

답변

enum 사용 :

public enum Foo {
    INSTANCE;
}

Joshua Bloch는 Google I / O 2008의 Effective Java Reloaded 강연 : link to video 에서이 접근 방식을 설명했습니다. 또한 그의 프레젠테이션 슬라이드 30-32를 참조하십시오 ( effective_java_reloaded.pdf ).

직렬화 가능한 싱글턴을 구현하는 올바른 방법

public enum Elvis {
    INSTANCE;
    private final String[] favoriteSongs =
        { "Hound Dog", "Heartbreak Hotel" };
    public void printFavorites() {
        System.out.println(Arrays.toString(favoriteSongs));
    }
}

편집 : "Effective Java" 의 온라인 부분은 다음과 같이 말합니다.

 

"이 접근법은 더 간결하고 직렬화 기계를 무료로 제공하며 정교한 직렬화 또는 반사 공격에도 불구하고 다중 인스턴스화에 대한 철갑 한 보증을 제공한다는 점을 제외하면 공용 필드 접근법과 기능적으로 동일합니다.이 접근법은 아직 널리 채택되지는 않았지만 단일 요소 열거 형은 단일 요소를 구현하는 가장 좋은 방법 입니다. "

출처 : https://stackoverflow.com/questions/70689/what-is-an-efficient-way-to-implement-a-singleton-pattern-in-java
728x90
반응형