作法(Mechanics)
- 在absorbing class(合并端的那個class)身上聲明source class的public協議,并將其中所有函數委托(delegate)至source class。
- ==》如果[以一個獨立接口表示source class函數]更合適的話,就應該在inlining之前先使用Extract Interface(341)。
- 修改所有source class引用點,改而引用absorbing class。
- ==》將source class聲明為private,以斬斷package之外的所有引用可能。
- 同時并修改source class的名稱,這便可使編譯器幫助你捕捉到所有對于source class的“dangling references”(虛懸引用點)。
- 編譯,測試。
- 運用Move Method(142)和Move Field(146),將source class的特性全部搬移到absorbing class。
- 為source class舉行一個簡單的葬禮。
|