引用解釋性變量
表達式可能非常複雜,難以閱讀。臨時變量可以幫助你將表達式分解爲比較容易管理的形式。
若有個複雜的表達式,把表達式的結果(或者子表達式的結果)放進臨時變量,這個臨時變量的名字能夠解釋表達式的目的。例如:對於一個長算法,可以把每一步的結果放進臨時變量。
示例:
if ( (platform.toUpperCase().indexOf("MAC") > -1) &&
(browser.toUpperCase().indexOf("IE") > -1) &&
wasInitialized() && resize > 0 )
{
// do something
}
final boolean isMacOs = platform.toUpperCase().indexOf("MAC") >-1;
final boolean isIEBrowser = browser.toUpperCase().indexOf("IE") >-1;
final boolean wasResized = resize > 0;
if (isMacOs && isIEBrowser && wasInitialized() && wasResized)
{
// do something
}
拆分臨時變量
每個變量只承擔一個職責:同一個臨時變量承擔兩件不同的事情,會令代碼維護者糊塗。
若有個臨時變量被賦值多次,但它既不是個循環變量也不是累計臨時變量。爲每次賦值做一個獨立的臨時變量。
示例一:
double temp = 2 * (_height + _width);
System.out.println (temp);
temp = _height * _width; //temp由周長變成面積
System.out.println (temp);
final double perimeter = 2 * (_height + _width);
System.out.println (perimeter);
final double area = _height * _width;
System.out.println (area);