[英]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.