- Comments
- Duplicated code
- Feature envy
- Long method
- method 內容太長時。
- 或需要註解時。
- 或不同的 method 裡有相似的 code 時。
- 將一段程式區塊抽出成一個 method,並以 method name 描述該 method 的目的。
- 無法處理多筆回傳值的狀況,當遇上這種狀況時,可以使用 Replace temp with query 或者 Replace method with method object 處理多筆回傳值的狀況。
好處:
- 提高 reuse
- 減少 duplicated code 。
- 程式可讀性
- 如果可以從 method 名稱就可以知道在做什麼,那就不需要註解了。
- 反過來說,當需要註解時,就可以考慮使用 Extract method 了。
- 如果抽出 method 有助於增加可讀性,即使抽出的程式碼比抽出的 method 名稱還短,也應該抽出來。
- 可供 overriding
- long method 非常不適合於 overriding。
盡量一個 method 一個回傳值,因為若有多個回傳值,表示該 method 做太多事了,除非那些事是不可以拆開的。
沒有留言:
張貼留言