[Curiosité] design pattern visitor et compilation
Bonjour,
Dans le cadre du développement d'un jeu, j'ai mis en place le design pattern "Visitor" qui me permet de mieux gérer tout ce qui est rendu et conditions spéciales (gestion du comportement des personnages et des évènements lors de l'apparition de pluie ou de neige par exemple). Après quelques difficultés, je suis finalement parvenu à faire e nsorte que tout marche. Pour cela dans ma classe abstraite qui définit un Visitor, j'ai du déclarer les classes visitées de la au préalable façon suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| // Visitor.h
class ClassA;
class ClassB;
class ClassC;
class Visitor:
{
// Constructeurs & Destructeur
Visitor();
virtual ~Visitor();
// Procedures & Functions
void visitClassA(ClassA *a);
void visitClassB(ClassB *b);
void visitClassC(ClassC *c);
}; |
Voici entre autre un exmple de déclaration d'une classe visitée:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| // ClassA.h
#include "Visitor.h"
class ClassA:
{
// Constructors & Destructor
ClassA();
~ClassA();
// Procedures & Functions
void accept(Visitor *v);
}; |
C'est tout ce que j'ai trouvé pour que ça compile du fait des problèmes de redondance dans les fichiers *.h . Mais trèves de bavardages, voici ma question : "Est-ce que c'est normal que je doive déclarer dans Visitor.h les classes que je vais visiter tel que je l'ai fait ou y'a-t-li une meilleure façon de le faire ?"
Merci à tous ceux qui prendont la peine de se pencher sur ma question.
;-)