訪問者模式(Visitor Pattern)以PHP為例
訪問者模式(Visitor Pattern)是一種行為型設計模式,它用於將操作從元素的結構中分離出來。這種模式可以讓我們在不修改元素類別的情況下,定義新的操作。 以下是一個使用 PHP 語言的訪問者模式重構案例: // 元素接口 interface Element { public function accept(Visitor $visitor): void; } // 具體元素 A class ConcreteElementA implements Element { public function accept(Visitor $visitor): void { $visitor->visitConcreteElementA($this); } public function operationA(): string { return "ConcreteElementA: Operation A"; } } // 具體元素 B class ConcreteElementB implements Element { public function accept(Visitor $visitor): void { $visitor->visitConcreteElementB($this); } public function operationB(): string { return "ConcreteElementB: Operation B"; } } // 訪問者接口 interface Visitor { public function visitConcreteElementA(ConcreteElementA $elementA): void; ...