類(對象)的重構手法ide
1.Move Method(搬移函數)(你的程序裏,有個函數與其所駐類以外 的另外一個類進行更多 交流,在該類函數最常引用的類中簡歷一個有着相似行爲的新函數,把舊函數變成一個委託函數或者徹底移除)函數
2.Move Field(搬移字段)(和Move Method差很少)spa
3.Extract Class(提煉類)(創建一個新類,把相關的字段和函數從舊類搬移到新類,一個類不斷被擴展,最後致使類很龐大,臃腫,這時候就能夠考慮拆分這個類了)對象
4.Inline Class(類內聯)(某個類沒作太多事情,把這個類全部特性移到另一個類中,而後移除原類)io
5.Hide Delegate(隱藏委託)(封裝意味着每一個對象儘量少理解系統的其餘部分,這樣一來一旦發生變化,那麼改動部分纔會少。若是某個客戶經過服務對象的一個字段得到另外一個對象,而後調用後者的函數,那麼客戶就必須知道這一層委託關係,你能夠在服務對象上放置一個簡單的委託函數,吧委託關係隱藏起來,從而去除這一層依賴,變化也只限於服務中 而不涉及客戶,也就是再封裝)擴展
6.Remove Middle Man(移除中間人)(某個類作了過多的簡單委託,讓客戶直接調用受託類會更好,和Hide Delegate 相反)重構
7.Introduce Foreign Method(引入外加的函數)(你須要爲提供服務的額類添加一個函數,可是你沒法修改這個類。在客戶類中創建一個函數 ,並以第一參數形式傳入一個服務類實例)簡歷
8.Introduce Local Extension(引入本地擴展)你須要服務類提供一些額外 的函數,可是你沒法修改這個類,創建一個新類使他包含這些額外的函數 讓這個擴展品成爲原類的子類或者包裝類引用