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