重構方法進階(十三):代碼常用重構方法(臨時變量內聯化&&拆分臨時變量)

 

 引用解釋性變量

表達式可能非常複雜,難以閱讀。臨時變量可以幫助你將表達式分解爲比較容易管理的形式。
若有個複雜的表達式,把表達式的結果(或者子表達式的結果)放進臨時變量,這個臨時變量的名字能夠解釋表達式的目的。例如:對於一個長算法,可以把每一步的結果放進臨時變量。
示例:
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);

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章