你的程式中,有個函式與其所駐類之外的另乙個類進行更多交流:呼叫後者,或被後者呼叫
在該函式最常引用的類中建立乙個有著類似行為的新函式。將舊函式變成乙個單純的委託函式,或者將舊函式完全移除。
某個欄位被其所駐類之外的另乙個類更多地用到。
如果我需要對類做許多處理,保持小步前進是有幫助的。
某個類做了應該由梁格磊做的事。可以分別加鎖。
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...