我有一个对象,我在一个方法中初始化:
public void something()
{
Dummy obj = Factory.getDummy();
method2(obj);
}
现在,这个Dummy
对象将被许多方法使用
public void method2(Dummy obj)
{
method2(obj);
....
}
现在,我怀疑这种情况必须如何处理,就像我这样做。或者,在obj
的{1}级字段中填写something
并在something
中初始化。
像:
private Dummy obj;
public void something()
{
obj = Factory.getDummy();
method2(obj);
}
并在后续方法中使用。 (从方法中删除参数)。
那么,处理这种情况的最佳方法是什么?为什么?
答案 0 :(得分:7)
答案 1 :(得分:2)
您应该将obj
声明为class-level
字段,然后在构造函数中对其进行实例化。
但更多要点清楚:
something()
和期望method2()
对象的Dummy
等方法位于同一个类中,那么您甚至不需要传递该对象。在这种情况下,上述声明得到支持答案 2 :(得分:2)
通常,您应最小化一个变量的范围。但是,如果变量在class
中非常常用,则应将其声明为 class-level ,作为实例变量。
答案 3 :(得分:1)
如果某个property
与类关联,那么该属性应该是静态的。也就是说,如果某个类的所有实例中的某些属性相同,那么property
应该是类中的静态。
如果每个类的实例有一些property
不同,那么property
应该是该类的成员变量(非静态变量)。
如果某些属性需要临时执行某些操作,那么将该属性作为操作的局部变量(method
)。