iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
自我挑戰組

Design Pattern - 無所不在的設計模式系列 第 29

[Day29] Design Pattern - Visitor訪問者模式

  • 分享至 

  • xImage
  •  

定義


Visitor is a behavioral design pattern that lets you separate algorithms from the objects on which they operate.
Refactoring Guru

訪問者模式是一種行為型設計模式,它允許你將演算法從它們作用的物件中分離出來。


圖片來源: Refactoring Guru

訪問者模式是為了解決~


  1. 將運算與元素結構分離
    當你需要對一個複雜的物件結構執行不同的操作時,不希望將這些操作的實作與元素類別緊密耦合時,Visitor模式可以幫助實現這種分離。

  2. 添加新運算而不修改現有元素類別
    透過Visitor模式,您可以輕鬆地添加新的操作,而不需要修改現有的元素類別。這對於在不破壞現有代碼結構的情況下擴展應用程序功能非常有用。

  3. 對元素結構進行多種操作
    當需要對元素結構進行多個不同的操作,而這些操作之間可能是彼此獨立的時,Visitor模式可以讓您輕鬆處理這種情況,而不會導致程式碼變得複雜和難以維護。

訪問者模式的元素


  • Element(元素):這代表物件結構中的一個元素。它提供一個接受(Accept)方法,該方法接受一個訪問者作為參數。

  • ConcreteElement(具體元素):這是實現元素介面(Element interface)的具體類別。

  • Visitor(訪問者):這個介面宣告了每個具體元素(ConcreteElement)類別的訪問(visit)操作。

  • ConcreteVisitor(具體訪問者):這是實作訪問者介面(Visitor interface)的具體類別。

UML



上一篇
[Day28] Design Pattern - Template method模板方法模式
下一篇
[Day30] 設計模式使用上的注意事項&完賽結語
系列文
Design Pattern - 無所不在的設計模式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言