我的 Android 应用程序中有一个 A 类,其中有一些方法。这些方法是公共的,并在其他类(B、C、D、E、F ...)中使用。
是否有可能只创建一次来自 A 类的对象,然后在其他类中使用它,或者我必须在每个类中创建新对象。
实际上我必须在每个班级(B,C,D,E,F ...)
A a = new A();
a.xxxx;
如果我只能创建一次对象 a 然后在我的其他类中调用它,那就太好了。
谢谢你。
使用单例模式。它允许您跨类使用相同的实例:
http://www.javabeginner.com/learn-java/java-singleton-design-pattern
class A{
static A a;
static{
a = new A();
}
}
在所有其他类中使用
A.a to get the object and call respective methods as
A.a.xxxx()
使用静态方法的类比来做到这一点。
例如:
public class Helper{
public static void doSomething(){
//do something here
}
}
现在在您的其他类中,使用上述方法,如下所示:
Helper.doSomething();
或者单例模式也将是另一种选择。
我看到以下 3 种可能性:
1.如果这些只是“正常”的帮助方法,你也可以这样做
B 类扩展 A
并将 A 的方法继承到 B,C,D,E,....
2.但是,如果您需要对所有其他类或其 B、C、D 实例全局的 A 类内部存储器,则可以使用静态模式,例如
class A{
static int myGlobalIntVariable; //which is accessible from everywhere
static void myHelperMethod1() {
}
或 3.你也可以使用上面提到的单例,它创建一个你在任何地方都可以使用的实例。
就像备注一样,您可以使用单例或静态模式,具体取决于您在访问方法时喜欢什么。
对于静态模式,您必须将它们称为:
A.myHelperMethod();
对于单身人士,您必须这样做:
A.getSingleton().myHelperMethod1(); or A.singleton.myHelperMethod1()
如果您定义了singleton
在 A 类中调用的变量
使用哪一个真的取决于您的需求和品味:-)