1. 程式人生 > >重構 改善既有程式碼的設計之在物件之間搬移特性 總結

重構 改善既有程式碼的設計之在物件之間搬移特性 總結

Move Method(搬移函式)
你的程式中 有個函式與其所駐類之外的另一個類進行更多交流 呼叫後者 或被後者呼叫
在該函式最常引用的類中建立一個有著類似行為的新函式 新舊函式變成一個單純的委託函式 或是將舊函式完全移除

Move Field(搬移欄位)
你的程式中 某個欄位被其所駐類之外的另一個類更多地用到
在目標類新建一個欄位 修改源欄位的所有使用者 令它們改用新欄位

Extract Class(提煉類)
某個類做了應該由兩個類做的事
建立一個新類 將相關的欄位和函式從舊類搬移到新類

Inline Class(將類內聯化)
某個類沒有做太多事情
將這個類的所有特性搬移到另一個類中 然後移除原類

Hide Delegate(隱藏委託關係)
客戶通過一個委託類來呼叫另一個物件
在服務類上建立客戶所需的所有函式 用以隱藏委託關係

Remove Middle Man(移除中間人)
某個類做了過多的簡單委託動作
讓客戶直接呼叫受託類

Introduce Foreign Method(引入外加函式)
你需要為提供服務的類增加一個函式 但你無法修改這個類
在客戶類中建立一個函式 並以第一引數形式傳入一個服務類例項

Introduce Local Extension(引入本地擴充套件)
你需要為服務類提供一些額外函式 但你無法修改這個類
建立一個新類 使它包含這些額外函式 讓這個擴充套件品成為源類的子類或包裝類