1. 程式人生 > >【設計模式】——訪問者模式(Visitor)

【設計模式】——訪問者模式(Visitor)

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

訪問者模式結構圖
在這裡插入圖片描述
目的
要把處理從資料結構分離出來

應用範圍
1、 一個物件結構包含很多類物件,它們有不同的介面,而你想對這些物件實施一些依賴於其具體類的操作。
2、 需要對一個物件結構中的物件進行很多不同的並且不相關的操作,而你想避免讓這些操作“汙染”這些物件的類。Visitor模式使得你可以將相關的操作集中起來 定義在一個類中。
3、 當該物件結構被很多應用共享時,用Visitor模式讓每個應用僅包含需要用到的操作。
4)、定義物件結構的類很少改變,但經常需要在此結構上定義新的操作。改變物件結構類需要重定義對所有訪問者的介面,這可能需要很大的代價。如果物件結構類經常改變,那麼可能還是在這些類中定義這些操作較好。

優點
增加新的操作很容易
缺點
增加新的資料結構變得困難