1

我的 Android 应用程序中有一个 A 类,其中有一些方法。这些方法是公共的,并在其他类(B、C、D、E、F ...)中使用。

是否有可能只创建一次来自 A 类的对象,然后在其他类中使用它,或者我必须在每个类中创建新对象。

实际上我必须在每个班级(B,C,D,E,F ...)

A a = new A();
a.xxxx;

如果我只能创建一次对象 a 然后在我的其他类中调用它,那就太好了。

谢谢你。

4

5 回答 5

6

使用单例模式。它允许您跨类使用相同的实例:

http://www.javabeginner.com/learn-java/java-singleton-design-pattern

于 2012-04-12T12:20:14.793 回答
3
class A{
    static A a;
    static{
          a = new A();
    }
}

在所有其他类中使用

A.a to get the object and call respective methods as
A.a.xxxx()
于 2012-04-12T12:21:05.923 回答
2

使用静态方法的类比来做到这一点。

例如:

public class Helper{
    public static void doSomething(){
        //do something here
    }
}

现在在您的其他类中,使用上述方法,如下所示:

Helper.doSomething();

或者单例模式也将是另一种选择。

于 2012-04-12T12:19:56.653 回答
1

相反,如果不涉及任何状态,为什么不将这些方法设为静态或考虑单实例模式..

如何使用静态方法单例模式

于 2012-04-12T12:15:35.520 回答
1

我看到以下 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 类中调用的变量

使用哪一个真的取决于您的需求和品味:-)

于 2012-04-12T12:51:01.807 回答