应该用最小范围创建对象吗?

时间:2011-09-20 13:23:58

标签: java

这个对某些人来说似乎微不足道,但我从一开始就试图养成良好的习惯......

是否应始终以最小范围创建对象?

在下面的示例中,corner1仅在循环内使用。最好的做法是在循环中创建(声明)它吗?

即。这样做

    for(int i = 0; i < 1; i++){
        DoubleVector corner1 = new DoubleVector();

        // code where corner1 gets used
    }

而不是

    DoubleVector corner1;

    for(int i = 0; i < 1; i++){
        corner1 = new DoubleVector();

        // code where corner1 gets used
    }

当然,如果我稍后需要corner1,那么我想我必须选择第二个选项。

4 个答案:

答案 0 :(得分:4)

是的,最好在循环中声明它。在这种情况下,原因主要是代码清洁度。如果声明接近初始化,则更容易阅读,并且它更好地记录了变量的使用方式。

当然,如果对象可以在循环的所有迭代中共享,那么在循环之前放置声明初始化可能是一种有效的优化。 / p>

答案 1 :(得分:4)

这不是以最小范围创建对象的情况,而是以最小范围声明变量。值得区分两者。

但是,通常最好的做法是尽可能狭隘地限制变量的范围 - 并且只在需要时才声明它们。变量出现的代码区域越小,就越容易理解它的使用方式和来源。

答案 2 :(得分:2)

是的,最好尽量减少变量的范围。它可以减少混乱,并减少在错误的时间意外使用错误的机会。

答案 3 :(得分:1)

限制变量和对象的范围始终是一种好习惯。 不仅是代码清理,而且因为它为垃圾收集器提供了一些回调,以便重新使用干净的臀部(如果谈论对象而不是在这种情况下变量)。

此外,在编写代码时,变量的大可见性更容易出错。