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