天天看點

設計模式行為型:通路者模式(VisitorPattern)

在通路者模式(Visitor Pattern)中,我們使用了一個通路者類,它改變了元素類的執行算法。通過這種方式,元素的執行算法可以随着通路者改變而改變。這種類型的設計模式屬于行為型模式。根據模式,元素對象已接受通路者對象,這樣通路者對象就可以處理元素對象上的操作。

主要将資料結構與資料操作分離。穩定的資料結構和易變的操作耦合問題。結構圖

設計模式行為型:通路者模式(VisitorPattern)

角色與了解

通路者模式共分為五種角色:

Visitor(抽象通路者):内部聲明一個對每一個具體元素進行通路的操作。

Concrete Visitor(具體通路者):繼承抽象通路者,實作對所有具體元素的一種通路操作。

Element(抽象元素):聲明accept()方法,以抽象通路者作為參數,供通路者通路。

Concrete Element(具體元素):實作accept()方法,調用通路者的通路方法以完成通路者對自身的通路。

Object Structure(對象結構):存儲并管理元素,提供一個入口,使所有元素被通路。

被通路者提供通路入口,使自身的資料被通路者通路。

核心代碼

抽象通路者

設計模式行為型:通路者模式(VisitorPattern)

具體通路者

抽象元素

設計模式行為型:通路者模式(VisitorPattern)

具體元素

設計模式行為型:通路者模式(VisitorPattern)

對象結構

設計模式行為型:通路者模式(VisitorPattern)

用戶端

設計模式行為型:通路者模式(VisitorPattern)