開發初期,你可能會在兩個classes之間建立一條單向連接,使其中一個class可以引用另一個class.隨著時間推移,你可能發現referred class需要得到其引用者(某個object)以便進行某些處理.也就是說它需要一個反向指針.
[反向指針]手法有點棘手,所以在你能夠自在運用它之前,應該有相應的測試.通常我不花心思去測試訪問函數(accessors),因為普通訪問函數的風險沒有高到需要測試的地步,但本重構要求測試訪問函數,所以它是極少數需要添加測試的重構手法之一.
本重構運用反向指針(back pointer)實現雙向關聯(bidirectionality).其他技術(例如連接對象,link objects)需要其他重構手法.
[反向指針]手法有點棘手,所以在你能夠自在運用它之前,應該有相應的測試.通常我不花心思去測試訪問函數(accessors),因為普通訪問函數的風險沒有高到需要測試的地步,但本重構要求測試訪問函數,所以它是極少數需要添加測試的重構手法之一.
本重構運用反向指針(back pointer)實現雙向關聯(bidirectionality).其他技術(例如連接對象,link objects)需要其他重構手法.