refacforing

重構 - 改善既有程式的設計 - Composing Methods

這篇文章討論《重構 - 改善既有程式的設計》裡的第六章 - Composing Methods

主要會討論程式碼的壞味道中 沒有被提及的重構方法裡面有關於 重新組織你的函式 的內容

圖片以及程式碼來源自重構 - 改善既有程式的設計

重新組織你的函式

Extract Method

你有一段程式碼可以被組織在一起並獨立出來 你就該把那段程式碼分離成單獨的函式

Extract Variable

用好的變數名稱來解釋運算式用途

Replace Temp with Query

用一個獨立的函式來取代暫時的區域變數

Remove Assignments to Parameters

不要對參數進行賦值的動作 比如說

int discount(int inputVal, int quantity) {
  if (inputVal > 50) {
    inputVal -= 2;
  }
}

inputVal是你的輸入變數 盡量不要去給他一個全新的值

int discount(int inputVal, int quantity) {
  int result = inputVal;
  if (inputVal > 50) {
    result -= 2;
  }
}

你就先用一個變數把結果先記下來 之後愛怎麼玩就怎麼玩

注意 如果是改動的話 那還可以接受

void aMethod(Object foo) {
  foo.modifyInSomeWay(); // 還OK
  foo = anotherObject; // 別這麼幹
} 

Replace Method with Method Object

把區域變數變成物件內的欄位 就不用在函式之間把變數傳來傳去