在訪問者模式(Visitor Pattern)中,我們使用了一個(gè)訪問者類,它改變了元素類的執(zhí)行算法。通過這種方式,元素的執(zhí)行算法可以隨著訪問者改變而改變。這種類型的設(shè)計(jì)模式屬于行為型模式。根據(jù)模式,元素對象已接受訪問者對象,這樣訪問者對象就可以處理元素對象上的操作。
主要將數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)操作分離。穩(wěn)定的數(shù)據(jù)結(jié)構(gòu)和易變的操作耦合問題。
結(jié)構(gòu)圖
角色與理解
- 訪問者模式共分為五種角色:
- Visitor (抽象訪問者):內(nèi)部聲明一個(gè)對每一個(gè)具體元素進(jìn)行訪問的操作。
- Concrete Visitor (具體訪問者):繼承抽象訪問者,實(shí)現(xiàn)對所有具體元素的一種訪問操作。
- Element (抽象元素):聲明accept()方法,以抽象訪問者作為參數(shù),供訪問者訪問。
- Concrete Element (具體元素):實(shí)現(xiàn)accept()方法,調(diào)用訪問者的訪問方法以完成訪問者對自身的訪問。
- Object Structure (對象結(jié)構(gòu)):存儲(chǔ)并管理元素,提供一個(gè)入口,使所有元素被訪問。
- 被訪問者提供訪問入口,使自身的數(shù)據(jù)被訪問者訪問。
核心代碼
- 抽象訪問者
- 具體訪問者
- 抽象元素
- 具體元素
- 對象結(jié)構(gòu)
- 客戶端
-
算法
+關(guān)注
關(guān)注
23文章
4697瀏覽量
94693 -
存儲(chǔ)管理
+關(guān)注
關(guān)注
0文章
31瀏覽量
9375
發(fā)布評(píng)論請先 登錄
基于入侵行為模式的告警關(guān)聯(lián)
上網(wǎng)行為管理新模式
基于觀察者模式的屏幕布局控件設(shè)計(jì)

Java設(shè)計(jì)模式(二十一):中介者模式
嵌入式軟件設(shè)計(jì)模式 好文值得收藏
GoF設(shè)計(jì)模式之訪問者模式
設(shè)計(jì)模式:訪問者設(shè)計(jì)模式
設(shè)計(jì)模式行為型:備忘錄模式

設(shè)計(jì)模式行為型:策略模式

設(shè)計(jì)模式行為型:狀態(tài)模式

設(shè)計(jì)模式行為型:觀察者模式

UVM設(shè)計(jì)模式之訪問者模式

評(píng)論