重構-簡化函數調用


1、Rename Method(函數改名)
  

2、Add Parameter(添加參數)
  

3、Remove Parameter(移除參數)
  

4、Separate Query from Modifier(將查詢函數和修改函數分離)
  某個函數既返回對象狀態值,又修改對象狀態。建立兩個不同的函數,其中一個負責查詢,另一個負責修改。

5、Parameterize Method (令函數攜帶參數)
  若干函數做了類似的工作,但在函數本地中卻包含了不同的值。建立單一函數,以參數表達那些不同的值。提煉重複代碼,將“少量數值視爲參數”。

6、Replace Parameter with Explicit Methods(以明確函數取代參數)
  有一個函數,其中完全取決於參數值而採取不同行爲。針對該參數的每一個可能值,建立一個獨立函數。

7、Preserve Whole Object(保持對象完整)
  你從某個對象中取出若干值,將它們作爲某一次函數調用時的參數。改爲傳遞整個對象。

8、Replace Parameter with Methods(以函數取代參數)
  對象調用某個函數,並將所得結果作爲參數,傳遞給另一個函數。並且另一個函數本身也能調用前一個函數。讓參數接受者去除該項參數,並直接調用前一個函數。

9、Introduce Parameter Object(引入參數對象)
  某些參數總是很自然地同時出現。以一個對象取代這些參數。

10、Remove Setting Method(移除設置函數)
  類中的某個字段應該在對象創建時被設值,然後就不再改變。去掉該字段的所有設置函數。

11、Hide Method(隱藏函數)
  又一個函數,從來沒有被其他任何類用到。將這個函數改爲private。儘可能降低所有函數的可見度。

12、Replace Constructor with Factory Method(以工廠函數取代構造函數)
  將構造函數替換爲工廠函數。

13、Encapsulate Downcast(封裝向下轉型)
  

14、Replace Error Code with Exception(以異常取代錯誤碼)
  某個函數返回一個特定的代碼,用以表示某種錯誤情況。改用異常。

(1)、決定應該拋出受控異常還是非受控異常:如果調用者有責任在調用前檢查必要狀態,就拋出非受控異常;如果想拋出受控異常,可以新建一個異常類阿,也可以使用現有的異常類。
(2)、找到該函數的調用者,對它們進行相應調整,讓它們使用異常:如果函數拋出非受控異常,那麼就調整調用者,使其在調用函數前做適當檢查;如果拋出受控異常,那麼就調整調用者,使其在try區域中使用

15、Replace Exception with Test(以測試取代異常)
  面對一個調用者這可以預先檢查的條件,拋出了一個受控異常。

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