java - 创建一个全局对象或多个局部对象

标签 java android

如果我有一个 OnlineDataRetrieval 类,我需要在 Activity 中不时使用它,那么为该类打开一个全局对象并在整个 Activity 的生命周期中重用该对象是否明智,或者我应该创建一个本地对象每次我需要使用该类时都对象吗?

所以基本上我想知道从性能角度来看以下哪个选项更可取?

选项 1

public class Activity extends Activity {
    OnlineDataRetrieval onlineDataRetrieval;
    protected void onCreate(Bundle savedInstanceState){
        onlineDataRetrieval = new OnlineDataRetrieval(this);
    }
    public void methodA(){
        onlineDataRetrieval.callSomeMethod();
    }
    public void methodB(){
        onlineDataRetrieval.callSomeMethod();
    }
    public void methodC(){
        onlineDataRetrieval.callOtherMethod();
    }
}

选项 2

public class Activity extends Activity {
    protected void onCreate(Bundle savedInstanceState){

    }
    public void methodA(){
        OnlineDataRetrieval onlineDataRetrieval = new OnlineDataRetrieval(this);
        onlineDataRetrieval.callSomeMethod();
    }
    public void methodB(){
        OnlineDataRetrieval onlineDataRetrieval = new OnlineDataRetrieval(this);
        onlineDataRetrieval.callSomeMethod();
    }
    public void methodC(){
        OnlineDataRetrieval onlineDataRetrieval = new OnlineDataRetrieval(this);
        onlineDataRetrieval.callOtherMethod();
    }
}

最佳答案

Java 是面向对象的。每次初始化类的新实例时,您都在创建一个新对象。如果您不需要创建新实例,那么从类中调用方法的选项是可以接受的。

这就像创建一个对象一次并从中调用一个方法三次与创建三次不同的对象并从三个不同的对象中调用相同的方法一样简单。

就性能而言,我会选择选项 1。

关于java - 创建一个全局对象或多个局部对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35352355/

相关文章:

notifications - 如何从 Java 呈现漂亮的桌面通知?

c# - Xamarin mediaPicker.TakePhotoAsync 使应用程序崩溃

java - 添加计时器并卡住应用程序(android studio)

android - 填充 View 的最佳方式

java - 我们可以在 Java 中创建接口(interface)的实例吗?

java - 应用程序关闭后恢复 Android 返回堆栈

java - 如何从主类调用 textArea 以便我可以在另一个类中使用它?

Java:本地哈希表覆盖全局哈希表

android - 从textview中获取文本以在android中的字符串中显示

android - : Unable to instantiate application and ClassNotFound while sharing apk