2015-01-13 4 views
1

스레드 안전 싱글 톤 인스턴스화에 Enum을 어떻게 사용할 수 있는지 이해할 수 없습니다. 그래서 싱글 톤을 만들고 싶은 클래스 A가 있다고 가정 해 보겠습니다. Enum을 사용하여 어떻게 할 수 있습니까? 아래 코드와 같은 제안을 보았지만 실제로 이해할 수는 없습니다. 아래에서 INSTANCE를 A singleObj = new A();으로 대체해야합니까?enum을 사용하여 스레드 안전 싱글 톤

또한, 정확히 어떻게 클래스 A는 I가 알아서해야 어떤 일이 같이 같아야합니다 .. 예를 들면 다음과 같습니다 만들기 등 개인 생성자

public enum EasySingleton{ 
    INSTANCE; 
} 

답변

2

아래 내가 대체된다 인스턴스에서 A singleObj = new A();?

그렇지 않습니다.

EasySingleton instance = EasySingleton.INSTANCE; 

당신은 당신이 등 원하는 방법을 사용하여 일반 클래스처럼 싱글 쓰기 -하지만 (어쨌든 열거 형에서 유효하지 않은)없는 public 생성자 : 당신은 사용할 수 있습니다.

+0

감사합니다. @ 존. 그러나 나는 아직도 그것을 얻지 않았다. 그래서 EasySingleton 자체가 싱글 톤 클래스가 될 것입니다. – Walt

+0

@Walt : 맞습니다. 단 하나의 유효한 값 ('INSTANCE')이 있기 때문에 그것은 하나의 싱글 톤입니다. 당신은 여전히 ​​인터페이스 등을 구현할 수 있습니다. –

+0

Jon. 내게 인내심을 가져 주셔서 감사합니다. 말할 필요도없이 나는 코딩 세계에서 초보자입니다. :) – Walt

0

것은 존은 다음 작업을 수행 할 것이라고 언급 한 바와 같이 : 당신이 싱글 톤 클래스를 만드는 접근법의 많은 몇 가지 더 예뿐만 아니라 프로/단점을해야 할 경우 방문 할 수

EasySingleton instance = EasySingleton.INSTANCE; 
instance.doSomething(); 

: http://avaldes.com/creating-a-thread-safe-singleton-class-with-examples/.

관련 문제