Wyjaśnienie wzoru gościa
Więc przeczytałem całą dokumentację dotyczącą wzorca Odwiedzającego i wciąż jestem bardzo zdezorientowany. Wziąłem ten przykład z innego pytania SO, czy ktoś mógłby mi pomóc zrozumieć? Na przykład, kiedy używamy wzoru projektu dla gości? Myślę, że zrozumiałem niektóre z nich, ale nie jestem w stanie zobaczyć większego obrazu. Skąd mam wiedzieć, kiedy mogę z niego korzystać?
<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>