【发布时间】:2017-03-10 14:03:06
【问题描述】:
大家好!这是我的问题:
我需要为我的应用制作教程。为此,我创建了一个名为 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;
}
等等…… 我使用的所有类,不一定要扩展Activity
你可以在我使用的几个类中找到这段代码。 所以,首先我需要创建一个 TutorialClass 的实例
TutorialClass Tutorial = null;
所以问题来了:如何从我必须展示我的教程的所有类中使用这个实例?如您所见,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() { ... }
//...
}
我读过存在一个允许实现我的目标的 Singleton 类,但我注意到它不是最好的解决方案。你有什么解决办法吗?谢谢大家!
【问题讨论】:
-
en.wikipedia.org/wiki/… 。选择你想要的。你可能最终会得到
Singleton。 -
你反对使用单例模式的理由是什么?为什么它“不是最好的解决方案”?
-
我从来没有使用过 Singleton 类,因为我从来不需要它。所以我只是在寻找解决这个问题的方法,我最终得到了这个:stackoverflow.com/questions/1300655/…
标签: java android singleton instance