在訪問者模式(Visitor Pattern)中,我們使用了一個訪問者類,它改變了元素類的執行算法。通過這種方式,元素的執行算法可以隨著訪問者改變而改變。這種類型的設計模式屬于行為型模式。根據模式,元素對象已接受訪問者對象,這樣訪問者對象就可以處理元素對象上的操作。
主要將數據結構與數據操作分離。穩定的數據結構和易變的操作耦合問題。
結構圖
角色與理解
- 訪問者模式共分為五種角色:
- Visitor (抽象訪問者):內部聲明一個對每一個具體元素進行訪問的操作。
- Concrete Visitor (具體訪問者):繼承抽象訪問者,實現對所有具體元素的一種訪問操作。
- Element (抽象元素):聲明accept()方法,以抽象訪問者作為參數,供訪問者訪問。
- Concrete Element (具體元素):實現accept()方法,調用訪問者的訪問方法以完成訪問者對自身的訪問。
- Object Structure (對象結構):存儲并管理元素,提供一個入口,使所有元素被訪問。
- 被訪問者提供訪問入口,使自身的數據被訪問者訪問。
核心代碼
- 抽象訪問者
- 具體訪問者
- 抽象元素
- 具體元素
- 對象結構
- 客戶端
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
算法
+關注
關注
23文章
4707瀏覽量
95192 -
存儲管理
+關注
關注
0文章
31瀏覽量
9410
發布評論請先 登錄
相關推薦
熱點推薦
基于入侵行為模式的告警關聯
本文提出了一種基于入侵行為模式的告警關聯方式。入侵行為模式是定義在時間基礎上的一組謂詞公式,其實質是通過時間限制聯系在一起的入侵事件的集合。該方法在對大量告
發表于 08-13 08:35
?6次下載
Java設計模式(二十一):中介者模式
中介者模式(Mediator Pattern) 中介者模式(Mediator Pattern): 屬于對象的行為
發表于 01-24 11:28
?356次閱讀
嵌入式軟件設計模式 好文值得收藏
本文引用自本人公眾號文章: 嵌入式開發中的兩點編程思想 ? C語言也很講究設計模式?一文講透 ? 包含如下: 01)C語言和設計模式(繼承、封裝、多態) ? 02)C語言和設計模式(訪問者
UVM設計模式之訪問者模式
Visitor Pattern: 允許一個或者多個操作應用到一組對象上,解耦操作和對象本身。換言之,如果component的數據結構是比較穩定的,但其是易于變化的,那么使用訪問者模式是個不錯的選擇。

評論