2017-03-10 6 views
0

여러분, 안녕하세요! 여기 내 질문 :하나의 인스턴스 클래스 만 구현

내 응용 프로그램에 대한 자습서를 만들어야합니다. 이를 위해 TutorialClass라는 클래스를 만들었습니다.이 클래스에는 여러 다른 클래스에서 호출해야하는 몇 가지 메서드가 포함되어 있습니다.

1 등급 :

//... 
if(Tutorial.tutorialStep==Tutorial.TUTORIAL_STEP1){ 
    Tutorial.TutorialStep1(); 
    Tutorial.tutorialStep=Tutorial.TUTORIAL_STEP2; 
} 

클래스 2 : 작업 흐름이 매우 이렇게 있습니다

//... 
if(Tutorial.tutorialStep==Tutorial.TUTORIAL_STEP2){ 
    Tutorial.TutorialStep2(); 
    Tutorial.tutorialStep=Tutorial.TUTORIAL_STEP3; 
} 

등등 ... 내가 사용하는 모든 클래스, 활동을 반드시 확장하지 말아야한다.

내가 사용하는 여러 클래스에서이 코드를 찾을 수 있습니다. 그래서, 우선 나는

TutorialClass Tutorial = null; 
그래서 여기

질문은 TutorialClass

의 인스턴스를 만들 필요가 : 어떻게 내가 내 튜토리얼을 보여 주어야하는 모든 클래스에서이 인스턴스를 사용할 수 있습니까? 보시다시피 tutorialStep의 값을 모든 클래스에서 볼 수 있어야하며 튜토리얼을 계속 진행하려면 모든 클래스가 해당 값을 확인하거나을 변경해야합니다. 여기

내 튜토리얼 클래스의 코드입니다 :

public class TutorialClass{ 

    Context context; 
    public static int tutorialStep; 

    final int TUTORIAL_STEP1=1; 
    final int TUTORIAL_STEP2=2; 
    final int TUTORIAL_STEP3=3; 
    //... 

    TutorialClass(Context context){ 
     this.context = context; 
    } 

    public void Tutorial1() { ... } 
    public void Tutorial2() { ... } 
    public void Tutorial3() { ... } 
    //... 

} 

내 목표에 도달 할 수있는 싱글 톤 클래스를 존재하는 읽었습니다,하지만 난 그게 최선의 해결책이 아니다 것으로 나타났습니다. 어떤 해결책이 있습니까? 모두에게 감사드립니다!

+2

가능한 중복을 [사용할 수있는 TutorialClass

public class TutorielInstance { private static TutorialClass instance; private static Context context; public static synchronized TutorialClass getInstance(){ if(instance==null){ instance=new TutorialClass(context); } return instance; } public static void setContext(Context c){ context=c; } } 

와의 인스턴스를 돌려 다른 클래스를 작성해야 Java 패턴?] (http://stackoverflow.com/questions/70689/what-is-an-efficient-way-to-implement-a-singleton-pattern-in-java) – GAlexMES

+0

https : //en.wikipedia .org/wiki/Software_design_pattern # 분류 및 목록. 원하는 것을 선택하십시오. 아마도 '싱글 톤'으로 끝날 것입니다. –

+0

싱글 톤 패턴 사용에 대한 귀하의 주장은 무엇입니까? 왜 "최상의 솔루션이 아닌가"? –

답변

1

당신은 그 활동에 당신이 싱글 톤을 구현하는 효율적인 방법이 무엇

TutorielInstance.setContext(this); 
TutorialClass tutorialClass=TutorielInstance.getInstance(); 
+0

그것은 일했습니다! 고맙습니다! – Apokalos