Python-Entwurfsmuster

Visitor Pattern in Python

Visitor Pattern in Python anhand eines praktischen, online ausführbaren Beispiels lernen.

Was ist Visitor Pattern?

Visitor Pattern in Python anhand eines praktischen, online ausführbaren Beispiels lernen.

Wann wird dieser Ansatz verwendet?

  • Wiederkehrende Probleme des Objektdesigns mit bewährten Strukturen lösen.
  • Verantwortlichkeiten entkoppeln, damit Code leichter erweiterbar und testbar ist.
  • Eine gemeinsame Entwurfssprache für Architekturgespräche im Team verwenden.

Beispielcode

Code ausführen →
main.py
class Book:
    # Visitor: move new operations outside stable element classes.
    def accept(self, visitor): return visitor.visit_book(self)


class Movie:
    def accept(self, visitor): return visitor.visit_movie(self)


class PriceVisitor:
    def visit_book(self, book): return 10
    def visit_movie(self, movie): return 5


# Each element dispatches to the matching visitor method.
visitor = PriceVisitor()
print(sum(item.accept(visitor) for item in [Book(), Movie()]))

Erwartete Ausgabe

15

So funktioniert es

Dieses Beispiel zeigt Visitor Pattern in Python. Ändere die Eingabewerte, um den Ablauf zu untersuchen.

Ändere die Werte und führe das Programm im CodeUtility Python Online-Compiler aus, ohne Python lokal zu installieren.

Übungsaufgaben

Verändere Eingaben und Randfälle, bevor du die Lösung mit größeren Datenmengen testest.

  1. Ersetze die Beispieldomäne, ohne die Struktur des Patterns zu verändern.
  2. Vergleiche das Pattern mit einer einfacheren Implementierung und erläutere die Abwägungen.
  3. Schreibe Tests für jeden Beteiligten, bevor du eine weitere Implementierung hinzufügst.
In der Python-IDE ausführen →