Sobes.tech
Junior — Middle

Können Sie das Konzept des 'Besucher'-Musters und seine Anwendung in der Programmgestaltung erklären?

sobes.tech KI

Antwort von AI

Das Muster «Besucher» (Visitor) ermöglicht es, Algorithmen von den Objekten zu trennen, auf denen sie ausgeführt werden. Es definiert eine Operation, die auf die Elemente einer Objektstruktur angewendet wird, wodurch neue Operationen hinzugefügt werden können, ohne die Klassen der Elemente zu ändern.

Anwendung:

  • Wenn verschiedene Operationen auf Objekte einer komplexen Struktur ausgeführt werden sollen.
  • Wenn häufig neue Operationen hinzugefügt werden, die Struktur der Objekte jedoch stabil bleibt.

Beispiel in C#:

interface IVisitor {
    void Visit(ElementA element);
    void Visit(ElementB element);
}

interface IElement {
    void Accept(IVisitor visitor);
}

class ElementA : IElement {
    public void Accept(IVisitor visitor) {
        visitor.Visit(this);
    }
}

class ElementB : IElement {
    public void Accept(IVisitor visitor) {
        visitor.Visit(this);
    }
}

class ConcreteVisitor : IVisitor {
    public void Visit(ElementA element) {
        Console.WriteLine("Verarbeitung von ElementA");
    }
    public void Visit(ElementB element) {
        Console.WriteLine("Verarbeitung von ElementB");
    }
}

Hier können neue Operationen hinzugefügt werden, indem neue Besucherklassen erstellt werden, ohne die Elementklassen zu ändern.