Explicação do padrão do visitante
Então eu li toda a documentação sobre o padrão Visitor, e ainda estou muito confuso. Tomei este exemplo de outra pergunta SO, alguém poderia me ajudar a entender? Por exemplo, quando usamos um padrão de design de visitante? Acho que posso ter entendido um pouco disso, mas simplesmente não consigo enxergar a foto maior. Como eu sei quando posso usá-lo?
<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>