1. 程式人生 > >重構改善既有代碼設計--重構手法15:Remove Middle Man (移除中間人)

重構改善既有代碼設計--重構手法15:Remove Middle Man (移除中間人)

rem pan 編譯 dash 委托 重構 man 服務 ide

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

動機:在Hide Delegate (隱藏委托關系)的“動機”中,談到了“封裝委托對象”的好處。但是這層封裝也是要付出代價的,它的代價是:每當客戶要使用受托類的新特性時,你就必須在服務端添加一個簡單委托函數。隨著委托類的特性(功能)越來越多,這一過程讓你痛苦不已。服務類完全變成了“中間人”,此時你就應該讓客戶直接調用受托類。

很難說什麽程度的隱藏才是合適的。還好,有了Hide Delegate (隱藏委托關系)和Remove Middle Man (移除中間人),你大可不必操心這個問題。因為你可以在系統運行過程中不斷進行調整。隨著系統的變化,“合適的隱藏程度”這個尺度也相應改變。6個月前恰如其分的封裝,現今可能就顯得笨拙。重構的意義在於:你永遠不必說對不起—只要把出問題的地方修補好就行了。

做法:1、建立一個函數,用以獲得受托對象。

2、對於每個受托函數,在服務類中刪除該函數,並讓需要調用該函數的客戶轉為調用受托對象。

3、處理每個受托函數後,編譯、測試。

重構改善既有代碼設計--重構手法15:Remove Middle Man (移除中間人)