visitor模式理論及學(xué)術(shù)概念------------------- visitor模式進一步
一,訪問者模式的角色:
抽象訪問者:聲明一個或者多個訪問操作,形成所有的具體元素都要實現(xiàn)的接口
具體訪問者:實現(xiàn)抽象訪問者所聲明的接口
抽象節(jié)點:聲明一個接受操作,接受一個訪問者對象作為參量
具體節(jié)點:實現(xiàn)了抽象元素所規(guī)定的接受操作
結(jié)構(gòu)對象:遍歷結(jié)構(gòu)中的所有元素,類似List Set等
二,在什么情況下應(yīng)當(dāng)使用訪問者模式
訪問者模式應(yīng)該用在被訪問類結(jié)構(gòu)比較穩(wěn)定的時候,換言之系統(tǒng)很少出現(xiàn)增加新節(jié)點的
情況。因為訪問者模式對開-閉原則的支持并不好,訪問者模式允許在節(jié)點中加入方法,
是傾斜的開閉原則,類似抽象工廠。
三,訪問者模式的缺點:
1,增加節(jié)點困難
2,破壞了封裝
因為訪問者模式的缺點和復(fù)雜性,很多設(shè)計師反對使用訪問者模式。個人感覺應(yīng)該在了解的
情況下考慮衡量選擇。
最后的部分:
看完本文,如果你對visitor模式有更多的興趣,想了解更多請看如下幾篇文章。
1,靜態(tài)分派,動態(tài)分派,多分派,單分派 -------------- visitor模式準(zhǔn)備
2,訪問差異類型的集合類 ------------------------ visitor模式入門
3,visitor模式理論及學(xué)術(shù)概念------------------- visitor模式進一步(本文)
4,重載overloading和覆寫overriding哪個更早執(zhí)行-- visitor幫助篇
雖然排列順序是1,2,3,4 但是我個人建議的學(xué)習(xí)方式是2,1,3,4因為這個順序更方便一般人理解