Command-Muster vs. Visitor Pattern
-
27-09-2019 - |
Frage
Ist es im Allgemeinen akzeptabel ein Besucher zu ermöglichen Zustand des Empfängers zu ändern, oder sollte ein Eingabemuster anstatt das sein?
Lösung
Der Zweck des Besuchermusters ist es, neue Operationen zu ermöglichen, dass Hierarchie zu einer Klasse Hierarchie ohne Änderungen hinzugefügt werden. Ich habe noch nie jemand darauf hindeutet gesehen, dass nur Leseoperationen akzeptabel sind. Die einzige Einschränkung ist, dass die zusätzlichen Operationen nur die öffentliche Schnittstelle der Klasse Hierarchie verwendet werden sollen.
Andere Tipps
Ich glaube nicht, können Sie eine pauschale Aussage treffen, ob es gut oder schlecht Zustand etwas zu ändern. Ich würde denken, es ist in Ordnung, die die Zustände so lange zu ändern, da es nicht den Besuch Logik selbst nicht beeinflusst. Zum Beispiel könnte man einen Besucher schreiben, dass Besucher alle Dateien unter Ordnerstruktur und die Dateinamen in Großbuchstaben umbenennt.
Microsofts Beispiel eines Besuchers des Empfängers modifiziert ist die
Jedes Muster seiner eigenen Vorteile, Nachteile und Anwendungsfälle hat. Sie können Entkoppeln die Aufrufer & Empfänger des Befehls Implementieren Sie Callback Mechanismus Implementieren Sie Undo und Redo Funktionalität Pflegen Sie eine Geschichte der Befehle Verwenden Related posts: Command
Muster
Visitor
Muster in folgenden Szenarien: