如果我需要使用全局类什么是最佳选择?为什么?
public class Global {
public static JSONObject GetJsonResquest(String url){
....
};
}
然后在我的活动中调用Global.GetJsonResquest(url)
或
public class Singleton {
private static Singleton ourInstance = new Singleton();
public static Singleton getInstance() {
return ourInstance;
}
private Singleton() {
}
public JSONObject GetJsonResquest(String url){
.....
}
}
然后使用通过Singleton.getInstance()。GetJsonResquest(“Asd”);
答案 0 :(得分:0)
当我需要一个全局静态变量时,我喜欢将它们分组为类似
的类public class MyConstants {
public static final int TIMEOUT = 10000;
}
要使用它,我可以称之为
long tick = System.currentThreadMillis();
while((System.currentThreadMillis() - tick) < MyConstants.TIMEOUT){
Thread.sleep(1000);
}
因此,当我更改TIMEOUT值时,我不必更改其他调用它的类
对于全局静态方法,我使用它们像
public class Utility{
public static boolean isStringValidJson(String jsonString){
return false;
}
}
与上述相同的原因。当我更改 isStringValidJson 时,调用它的其他类不会更改
我确实使用单例模式,但只有当我重写Application类时才会这样。但是,我在 OnCreate 中设置了实例值。这意味着如果未调用 OnCreate , getInstance 将返回null
public class MyApplication extends Application {
private static MyApplication instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
public static synchronized MyApplication getInstance(){
return instance;
}
}