2011-03-22 4 views
1

10 개의 클래스가 기본 클래스에서 상속 받고 10 개의 서브 클래스 모두가 싱글 톤에 액세스해야하는 경우, 싱글 톤에 대한 참조가 어떻게 전달되어야합니다. 나는 이것에 대해가는 몇 가지 방법을 참조,이 개 같은 존재 :10 개의 형제 객체에 대한 싱글 톤 참조 전달 방법

  1. 전화 후 서브 클래스를 공유 할 수 있습니다 정적 객체의 참조를 설정하는 슈퍼 클래스의 정적 메서드

  2. 전달 생성자에서 인수로 각 서브 클래스에 대한 싱글 톤 참조. 각 서브 클래스는 싱글 톤 객체에 대한 참조를 저장하거나 슈퍼 클래스 생성자에 전달할 수 있습니다.

그러나 나는 무엇이 선호되는 길인지 또는 내가 명백한 것을 놓치고 있는지 모른다. 미리 감사드립니다.

답변

2

옵션 코드에서 노이즈와 중복을 줄입니다.

+0

그게 내가 생각한거야.하지만 더 영리한 방법이 있는지 항상 궁금해. –

1

어떻게이 같은 기본 클래스에서 싱글 인스턴스를 만드는 방법에 대한 :

static final MySingleton mySingleton = new MySingleton(); 

mySingleton은 모든 상속 된 클래스에서 자동으로 사용할 수 있습니다.

편집 : 의견으로 당 :

같이 (는 런타임 인수를 전달 필요하지 않은 경우) 당신은 기본 클래스의 정적 참조를 얻을 수있다 : (1)가 제공

static final MySingleton mySingleton; 
static { 
    SomeClass so = new SomeClass(123, "abc"); 
    mySingleton = so.getMySingleton(); 
} 
+0

프로그램에서이 싱글 톤은이 특정 개체 패밀리 외부에 존재해야합니다. 그래도 고마워. –

+1

또 다른 접근법을 추가했습니다, pls는 옵션 # 1과 거의 같은 EDIT 섹션을 보았습니다. – anubhava

6

싱글 톤 클래스에서 getInstance() 메서드를 사용하지 않는 이유는 무엇입니까? 그것을 따라 할 필요가 없습니다. 필요할 때마다 static getInstance() 메서드를 사용하십시오.