2011-11-30 5 views
2

나는 게으른 인스턴스 싱글 톤 패턴모든 싱글 톤 패턴 초기 인스턴스화 문제

참조를 사용하여 몇 가지 문제를 가로 질러왔다.

마찬가지로 초기 인스턴스화 된 싱글 톤 패턴을 사용하는 데 문제가 있습니까?

+3

왜 많은 사람들이 싱글 톤 패턴에 관심이 있습니까? – duffymo

+1

@duffymo : 블로그 게시물과 질문이 너무 많아서 사람들이 중요한 인상을받습니다. –

답변

3

약 10 년 전에 작성되었습니다. 2004 년 이래로 가장 단순한 싱글 톤 패턴은 enum을 사용하고 하나의 인스턴스를 사용하는 것입니다.

아이디어가 (싱글의 많은 아마도과) 일찍 끝낼 그래서 만약 싱글 톤을 인스턴스화하는 것이 긴 일시 정지로 이어질 수, 비용이 많이들 수 있다는 것 같다
enum Singleton { 
    INSTANCE; 
} 
2

때 게으른 instatiation 스프레드 반면 응용 프로그램이 시작, 싱글 톤 (singleton)이 항상 필요하지 않은 경우에는 지연이 발생하고이를 완전히 피할 수 있습니다.

많은 수의 응용 프로그램에서이 문제가 실제로 발생합니까? 나는 그렇지 않다는 것을 매우 확신하고 있으며, 느리게 인스턴스화 된 싱글 톤에 대한 블로그 글과 질문의 양은 실제적인 유용성에 비례하지 않습니다. 이 주목은 많은 사람들에게 이것이 싱글 톤을 어떻게 구현해야하는지에 대한 인상을 주었고 똑같은 반쯤 열정적으로 인스턴스화 된 싱글 톤이 완벽하게 괜찮은 장소에서 불필요하게 복잡한 솔루션을 선택하도록 만들었습니다.

그렇다면이 문제는 왜 그렇게 많은 관심을 끕니까? 필자는 부분적으로는 동시 코드와 관련된 Java 메모리 모델의 일부 미세한 점을 부분적으로 설명하고 일부는 똑똑한 게임을 보여주고 있다고 생각합니다.