如果我有一个我需要在我的Activity中不时使用的类OnlineDataRetrieval,那么打开该类的全局对象并在活动的整个生命周期中重用该对象是明智的,或者我应该创建一个本地每次我需要使用该类时对象?
所以基本上我想知道从性能的角度来看下面哪个选项更合适?
选项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();
}
}
答案 0 :(得分:1)
Java是面向对象的。每次初始化类的新实例时,都会创建一个新对象。如果您不需要创建新实例,则可以接受从该类调用该方法的选项。
就像创建一个对象一样简单并从中调用一个方法三次而不是创建三次不同的对象并从三个不同的对象调用相同的方法。
在性能方面,我会选择选项1.