Besuchermuster Erklärung

Ich habe also die gesamte Dokumentation über das Besuchermuster gelesen und bin immer noch stark verwirrt. Ich habe dieses Beispiel einer anderen SO-Frage entnommen. Kann mir jemand helfen, das zu verstehen? Wann verwenden wir beispielsweise ein Besucherdesignmuster? Ich glaube, ich habe einiges davon verstanden, aber ich kann das Gesamtbild einfach nicht sehen. Woher weiß ich, wann ich es verwenden kann?

<code>class equipmentVisited
{
  virtual void accept(equipmentVisitor* visitor) = 0;
}

class floppyDisk : public equipmentVisited
{
  virtual void accept(equipmentVisitor* visitor);
}

class processor : public equipmentVisited
{
  virtual void accept(equipmentVisitor* visitor);
}

class computer : public equipmentVisited
{
  virtual void accept(equipmentVisitor* visitor);
}

class equipmentVisitor
{
  virtual void visitFloppyDisk(floppyDisk* );
  virtual void visitProcessor(processor* );
  virtual void visitComputer(computer* );
}

// Some additional classes inheriting from equipmentVisitor would be here

equipmentVisited* visited;
equipmentVisitor* visitor;

// Here you initialise visited and visitor in any convenient way

visited->accept(visitor);
</code>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage