設計模式之訪問者模式

2021-09-11 16:53:58 字數 1541 閱讀 3835

訪問者模式(visitor),表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。

物件結構中物件對應的類很少改變,但經常需要在此物件結構上定義新的操作

需要對乙個物件結構中的物件進行很多不同的並且不相關的操作,而需要避免讓這些操作「汙染」這些物件的類,也不希望在增加新操作時修改這些類

使得新增新的訪問操作變得更加簡單

能夠使得使用者在不修改現有類的層次結構下,定義該類層次結構的操作

將有關元素物件的訪問行為集中到乙個訪問者物件中,而不是分散搞乙個個的元素類中

增加新的元素類很困難。在訪問者模式中,每增加乙個新的元素類都意味著要在抽象訪問者角色中增加乙個新的抽象操作,並在每乙個具體訪問者類中增加相應的具體操作,違背了「開閉原則」的要求

破壞封裝。當採用訪問者模式的時候,就會打破組合類的封裝

比較難理解。貌似是最難的設計模式了

客戶端呼叫

訪問者模式(visitor),表示乙個作用於某物件結構中的各元素的操作。

它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。

public class client 

}

設計模式系列:

建立型結構型

行為型工廠方法

簡單工廠

抽象工廠

建造者模式

單例模式

原型模式

組合模式

外觀模式

橋接模式

**模式

享元模式

介面卡模式

裝飾模式

策略模式

模板方法

狀態模式

觀察者模式

備忘錄模式

迭代器模式

命令模式

職責鏈模式

直譯器模式

訪問者模式

中介者模式

設計模式之訪問者模式

先看一下下面這段 class person public string getaction public void setaction string action public void getconclusion else if action exciting else if action gri...

設計模式之訪問者模式

我們去銀行櫃檯辦業務,一般情況下會開幾個個人業務櫃檯的,你去其中任何乙個櫃檯辦理都是可以的。我們的訪問者模式可以很好付諸在這個場景中 對於銀行櫃檯來說,他們是不用變化的,就是說今天和明天提供個人業務的櫃檯是不需要有變化的。而我們作為訪問者,今天來銀行可能是取消費流水,明天來銀行可能是去辦理手機銀行業...

設計模式之訪問者模式

定義 表示一介作用於某個物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。結構圖 示例 public inte ce vistor public class concretevisitor1 implements vistor override public ...