Visitor ermöglicht es, neue Operationen auf den Elementen einer Struktur zu definieren, ohne die Elemente selbst anzupassen.

siehe: GitHub - ReadMe, GOF, STEMA, PK

Klassendiagramm

Beispiel

In unserem kleinen B2B-Geschäft haben wir es mit verschiedenen Firmen zu tun (unseren Kunden). Dabei haben wir es häufig mit Unternehmensstrukturen (Holding, Firma, Abteilung etc.) zu tun. Auf jeder Ebene werden ggf. Rabatte gewährt, wobei genau festgelegt ist, welche kombiniert werden dürfen und welche nicht.

Visitor ermöglicht hier, den konkreten Rabatt zu bestimmen.

Zur Ermittlung des Rabatts steigt der Besucher an der gewählten Stelle ein, fragt sich gewissermaßen durch, und rechnet den konkreten Rabatt aus.

Um das Zusammenspiel im Detail beobachten zu können, setzen Sie den log-level auf DEBUG in der logback.xml und führen den zugehörigen TestCase aus.

Ressourcen