Visitor Pattern VS Iterator Pattern: Besuch über Hierarchieklassen hinweg?

Ich untersuche die Vorteile des Besuchermusters und zitiereDesignmuste:

Aber ein Iterator kann nicht über Objektstrukturen mit verschiedenen Arten von Elementen funktionieren. Beispielsweise kann die auf Seite 295 definierte Iterator-Schnittstelle nur auf Objekte vom Typ Item: @ zugreife

template <class Item> 
clas  Iterator { // ... Item CurrentItem() const; };

Dies impliziert, dass alle Elemente, die der Iterator besuchen kann, ein gemeinsames Element der Elternklasse haben. Besucher hat diese Einschränkung nicht ...

class Visitor {
public:
// ...
void VisitMyType(MyType*);
void VisitYourType(YourType*);
};

MyType und YourType müssen überhaupt nicht vererbt werden.

Ich stimme diesem Zitat zu, aber ich kann kein Beispiel finden, in dem das Besuchermuster eine Struktur untersuchen könnte (wie einList) wenn darin gesammelte Objekte nicht durch eine Superklasse verknüpft sind.

In anderen Worten, können Sie mir ein Beispiel zeigen, in dem die oben genannten Merkmale zutreffen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage