04. 重構-在對象之間搬移特性

一 Move Method (搬移函數)

       如果一個類有太多的行爲,或者說如果一個類與另外一個類有太多合作而形成高度耦合,這個時候就應該搬移函數。通過搬移函數,可以使得系統中的類更加簡單,最終也將更乾淨利落實現系統交付的任務。

二 Move Field (搬移字段)

       在程序中,如果某個字段被其所駐類之外的另一個類更多地用到。這個時候需要在目標類新建一個字段,修改源字段的所有用戶,令它們改用新字段。

三 Extract Class (提煉類)

       如果某個類做了應該由兩個類做的事情,這個時候就應該建立一個新類,將相關的字段和函數從舊類搬移到新類。

四 Inline Class (將類內聯化)

       如果某個類沒有做太多事情,可以將這個類的所有特性搬移到另一個類中,然後移除原類。

五 Hide Delegate(隱藏 "委託關係")

       客戶通過一個委託類來調用另一個對象,在服務類上建立客戶所需的含有函數,用以隱藏委託關係。

六 Remove Middle Man (移除中間人)

       某個類做了過多的簡單委託動作,讓客戶直接調用受託類。

七 Introduce Foreign Method (引入外加函數)

       你需要爲提供服務的類增加一個函數,但你無法修改這個類。在客戶類中建立一個函數,並以第一參數形式傳入一個服務類實例。

八 Introduce Local Extension (引入本地擴展)

       如果需要爲服務類提供一些額外函數,但是無法修改這個類。這個時候可以新建立一個類,使它包含這些額外函數,讓這個擴展品成爲源類的子類或包裝類。

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