23种设计模式之访问者模式
生活随笔
收集整理的這篇文章主要介紹了
23种设计模式之访问者模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
訪問者模式的定義
定義: 封裝一些作用于某種數據結構中的各元素的操作, 它可以在不改變數據結構的前提下定義作用于這些元素的新的操作
通俗的說, 就是定義一個訪問者角色, 當對指定角色進行訪問時要通過訪問者進行訪問
其類圖如下:
?
各角色說明:
抽象元素代碼:
?
具體元素代碼:
?
抽象訪問者代碼:
?
具體訪問者代碼:
?
結構對象用來產生不同的元素對象, 代碼如下:
?
場景類代碼:
?
通過增加訪問者, 這要是具體元素就非常容易訪問, 對元素的遍歷就更加容易了, 甭管它是什么對象, 只要它在一個容器中, 都可以通過訪問者來訪問, 任務集中化.
訪問者模式的應用
訪問者模式的優點:
訪問者模式的缺點:
訪問者模式的應用場景:
訪問者模式的擴展
1.統計功能
對不同的具體元素進行統計, 針對不同的具體元素針對性統計
比如統計員工工資, 經理和員工的工資情況不同, 使用訪問者進行分別計算, 然后可以計算總額等
2.多個訪問者
可以定義多個訪問者, 每個訪問者實現不同的功能
在IVistor 下再定義 接口繼承 IVistor, 分別實現各自功能, 使用時傳遞不同的訪問者有不同的表現
訪問者模式是一種集中規整模式,特別使用于大規模重構的項目, 在這一個階段需求已經非常清晰, 原系統的功能點也已經明確, 通過訪問者模式可以很容易把一些功能進行梳理, 達到最終目的--功能集中化, 如一個統一的報表運算、UI展現等, 我們還可以與其它模式混編建立一套自己的過濾器或者攔截器
總結
以上是生活随笔為你收集整理的23种设计模式之访问者模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 23种设计模式之门面模式
- 下一篇: Ubicomp2018年论文列表