Visitor Pattern
允許在不改變組合內各元素的情況下,增加各元素的新操作。
訪問者模式會將類別分為兩類:
分別是 訪問者類別 (Visitor) 與 元素類別 (Element) 。
讓原本屬於元素的行為,變成 訪問者類別 (Visitor) 。
根據傳入元素的不同,會有對應的行為,緊耦合於 元素類別 (Element) 。
優點:
將操作從元素類別抽離,使其能獨立變化。
容易新增/修改訪問者類別。
缺點:
難以增加新的元素。
破壞了原本元素的封裝。
會使程式碼複雜度提高。
與其他模式的比較:
[組合模式]:
訪問者模式可能會使用到組合模式的技巧。
[迭代器模式]:
訪問者模式可能會使用到迭代器模式的技巧。
ʕ •ᴥ•ʔ:訪問者模式改變了原本的主從關係。