重構手法03、Inline Temp (內聯臨時變數)

來源:互聯網
上載者:User

 

你有一個臨時變數,只被一個簡單運算式賦值一次,而它妨礙了其他重構手法。將所有對該變數的引用動作,,替換為對它賦值的那個運算式自身                               

double basePrice = anOrder.BasePrice();

return basePrice(>1000);

 

                   

return (anOrder.BasePrice() >1000);

 

動機:Inline Temp (內聯臨時變數)多半是作為Replace Temp with Query (以查詢取代臨時變數)的一部分使用的,所以真正的動機出現在後者哪。唯一單獨使用Inline     Temp (內聯臨時變數)情況是:你發現某個臨時變數被賦予某個函數調用的傳回值。一般來說,這樣的臨時變數不會有任何危害,可以放心把它留在那。但如果這個臨時變數妨礙了其他的重構手法,例如 Extract Method (提煉函數),就應該將它內聯化。

做法:1、檢查給臨時變數賦值的語句,確保等號右邊的運算式沒用副作用。

              2、如果這個臨時變數並未被聲明為const,那就將它聲明為const,然後編譯。這可以檢查該臨時變數是否真的只是被賦值一次。

              3、找到該變數的所有引用點,將它們替換為“為臨時變數賦值”的運算式。

              4、每次修改後,編譯並測試。

              5、修改完所有引用點後,刪除該臨時變數的聲明和指派陳述式。

         6、編譯、測試。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.