[英]Android: use a global object instead of creating new ones
我的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();
或者Singleton模式也将是备用模式。
我看到以下3种可能性:
1.如果这些只是“正常”的辅助方法,您也可以这样做
B级延伸到A
并将A的方法继承为B,C,D,E ...
2.但是,如果您需要类A的内部存储器对于所有其他类或其B,C,D实例是全局的,则可以使用静态模式,例如
class A{
static int myGlobalIntVariable; //which is accessible from everywhere
static void myHelperMethod1() {
}
或3.您也可以使用上述的singleton来创建您在各处使用的实例。
仅作说明,您可以使用单例或静态模式,具体取决于访问方法时的偏好。
对于静态模式,您必须像这样调用它们:
A.myHelperMethod();
对于单例,您必须执行以下操作:
A.getSingleton().myHelperMethod1(); or A.singleton.myHelperMethod1()
如果您在A类中定义了一个名为singleton
的变量
真正使用哪个取决于您的需求和口味:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.