在通路者模式(Visitor Pattern)中,我們使用了一個通路者類,它改變了元素類的執行算法。通過這種方式,元素的執行算法可以随着通路者改變而改變。這種類型的設計模式屬于行為型模式。根據模式,元素對象已接受通路者對象,這樣通路者對象就可以處理元素對象上的操作。
主要将資料結構與資料操作分離。穩定的資料結構和易變的操作耦合問題。結構圖

角色與了解
通路者模式共分為五種角色:
Visitor(抽象通路者):内部聲明一個對每一個具體元素進行通路的操作。
Concrete Visitor(具體通路者):繼承抽象通路者,實作對所有具體元素的一種通路操作。
Element(抽象元素):聲明accept()方法,以抽象通路者作為參數,供通路者通路。
Concrete Element(具體元素):實作accept()方法,調用通路者的通路方法以完成通路者對自身的通路。
Object Structure(對象結構):存儲并管理元素,提供一個入口,使所有元素被通路。
被通路者提供通路入口,使自身的資料被通路者通路。
核心代碼
抽象通路者
具體通路者
抽象元素
具體元素
對象結構
用戶端