重構摘要7 在物件之間搬移特性

2021-06-22 08:12:28 字數 517 閱讀 7873

你的程式中,有個函式與其所駐類之外的另乙個類進行更多交流:呼叫後者,或被後者呼叫

在該函式最常引用的類中建立乙個有著類似行為的新函式。將舊函式變成乙個單純的委託函式,或者將舊函式完全移除。

某個欄位被其所駐類之外的另乙個類更多地用到。

如果我需要對類做許多處理,保持小步前進是有幫助的。

某個類做了應該由梁格磊做的事。可以分別加鎖。

extract class 是改善併發程式的一種常用技術。

某個類沒有做太多事情

客戶通過乙個委託類來呼叫另乙個物件。

在服務類上建立客戶所需要的所有函式,用以隱藏委託關係

某個類做了過多的簡單委託動作

讓客戶直接呼叫受託類(受託類特性越來越多)

你需要為提供服務的類增加乙個函式,但你無法修改這個類

在客戶類中建立乙個函式,並以第一引數形式傳入乙個服務類例項。

你需要為服務類提供一些額外的函式,但你無法修改這個類

建立乙個新類,使它包含這些額外函式。讓這個擴充套件品成為源類的子類或包裝類。

重構 在物件之間搬移特性

1 move method 搬移函式 有個函式與所在類之外的另乙個類進行更多的交流 呼叫或被呼叫 在該函式最常引用的類中建立乙個有著類似行為的新函式。將舊函式變為乙個單純的委託函式,或者將舊函式刪除。2 move field 搬移字段 某個欄位被其所屬類之外的另乙個類頻繁呼叫。3 extract c...

重構 在物件之間搬移特性

你的程式中,有個函式與其所駐類之外的另乙個類進行更多交流 呼叫後者,或被後者呼叫 則在該函式最常引用的類中建立乙個有著類似行為的新函式,將舊函式變成乙個單純的委託函式,或是將舊函式完全移除。動機 如果乙個類有太多行為,或如果乙個類與另乙個類有太多合作而形成高度耦合,就使用搬移函式,通過這種手段,可以...

重構之在物件之間搬移特性

1.move method 搬移函式 你的程式中,有個函式與其所駐 class 之外的另乙個 class 2.move field 搬移值域 在 target class 建立乙個 new field 修改source field 的所有使用者,令它們改用 new field。3.extract c...