Java 两个班级的最佳实践

Java 两个班级的最佳实践,java,android,performance,Java,Android,Performance,如果我需要使用全局类,最好的选择是什么?为什么 public class Global { public static JSONObject GetJsonResquest(String url){ .... }; } 然后在我的活动中调用Global.GetJsonResquest(url) 或 public class Singleton { private static Singleton ourInstance = new Singleto

如果我需要使用全局类,最好的选择是什么?为什么

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”)

当我需要一个全局静态变量时,我喜欢将它们分组到一个类中,如

public class MyConstants {
    public static final int TIMEOUT = 10000;
}
要使用它,我可以这样称呼它

long tick = System.currentThreadMillis();
while((System.currentThreadMillis() - tick) < MyConstants.TIMEOUT){
    Thread.sleep(1000);
}
原因同上。当我更改isStringValidJson时,调用它的其他类不会更改

我确实使用单例模式,但只有在重写应用程序类时才使用。但是,我在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;
    }
}

当我需要一个全局静态变量时,我喜欢将它们分组到一个类中,如

public class MyConstants {
    public static final int TIMEOUT = 10000;
}
要使用它,我可以这样称呼它

long tick = System.currentThreadMillis();
while((System.currentThreadMillis() - tick) < MyConstants.TIMEOUT){
    Thread.sleep(1000);
}
原因同上。当我更改isStringValidJson时,调用它的其他类不会更改

我确实使用单例模式,但只有在重写应用程序类时才使用。但是,我在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;
    }
}

可能重复,但如果我需要使用常量变量。。。示例时间\u默认值=4000或更多。。。或者方法CalculateValue(int jjdsjd)bes方法是什么?我的问题是当活动中只需要1个函数或1个常量,而不需要加载allin时的最佳实践。在这个代码示例中,最好是在第一种情况下,您不需要任何全局实例来将字符串转换为JSONObject可能的重复项,但如果我需要使用常量变量。。。示例时间\u默认值=4000或更多。。。或者方法CalculateValue(int jjdsjd)bes方法是什么?我的问题是,当活动中只需要1个函数或1个常量,而不需要加载allin时的最佳实践。在这个代码示例中,更好的情况是,在第一种情况下,您不需要任何全局实例来将字符串转换为jsonObject