25 Visitor(行爲型)
-
- 認爲被訪問的東西收留我了
- 動機:
- 表示要對對象結構的元素執行的操作。
- Visitor允許您定義一個新操作,而無需更改它所操作的元素的類。
- 什麼時候用:
- 對象結構包含許多具有不同接口的對象類,您希望對這些依賴於其具體類的對象執行操作。
- 需要對對象結構中的對象執行許多不同的和不相關的操作,您希望避免使用這些操作“污染”它們的類。當對象結構被許多應用程序共享時,使用Visitor將操作放在需要它們的應用程序中。
- 定義對象結構的類很少更改,但是您通常希望在結構上定義新的操作
- 結構:
- 我拿到一個visitor,我調用visitor的方法來訪問我
- 參與者:
-
- 協作:
- 好處:
- 壞處:
- 例:
- 類圖:
- Visitor:
- Element:
- Entry:
- File:
- Directory:
- ListVisitor:
- Main:
- 類圖:
- 協作: