iT邦幫忙

第 12 屆 iThome 鐵人賽

1
Software Development

你終究都要學設計模式的,那為什麼不一開始就學呢?系列 第 55

Day55. 訪問者模式

本文同步更新於blog

Visitor Pattern

允許在不改變組合內各元素的情況下,增加各元素的新操作。。


訪問者模式會將類別分為兩類:
分別是訪問者類別 (Visitor)元素類別 (Element)

讓原本屬於元素的行為,變成訪問者類別 (Visitor)
根據傳入元素的不同,會有對應的行為,緊耦合於元素類別 (Element)


優點
將操作從元素類別抽離,使其能獨立變化。
容易新增/修改訪問者類別。

缺點
難以增加新的元素。
破壞了原本元素的封裝。
會使程式碼複雜度提高。


與其他模式的比較:

[組合模式]:
訪問者模式可能會使用到組合模式的技巧。

[迭代器模式]:
訪問者模式可能會使用到迭代器模式的技巧。


ʕ •ᴥ•ʔ:訪問者模式改變了原本的主從關係。


上一篇
Day54. 範例:打招呼(中介者模式)
下一篇
Day56. 範例:各國婚禮(訪問者模式)
系列文
你終究都要學設計模式的,那為什麼不一開始就學呢?57

尚未有邦友留言

立即登入留言