Bonjour à tous !
Histoire de ne pas trainer des lourdeur indéfiniment, je suis entrain d'essyer de remanier certaines partie de mon programme, pour en simplifier le code .
La je tombe sur mon cEventManager ( une horreur ! )
C'est une classe, qui possède en gros une seule fonction, qui prend en paramètre un string ( représentant le chemin sur le disque dur, d'un fichier xml décrivant un objet ). Cette fonction, doit
1) créer une nouvelle instance de l'objet ( une classe dérivé de cEvent )
2) ajouter cet objet a mon manager de resssources
3) appeller une méthode Init() sur cet objet, en lui passant en paramètre, le path du fichier le décrivant, ainsi que son Identifiant, retourné par le manager de ressources au moment de l'ajout .
Pour le moment, j'ai un truc trés moche ( mais fonctionel ) du style
1) on lit dans le fichier le type de l'objet
2) on entame une série de if ( type = "valeur")
3) dans ces if(), on cré un objet correspondant au type
ex :
Dans cet exemple, cChien, dérive de cEvent .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if ( type = "Chien") { ManagerDeRessource.Add("Chien", new cChien() ) ; }
Enfin aprés ma série de if , j'apelle la méthode init()
( la pas de problème, car la méthode init() est définit virtuellement dans cEvent )
Le problème est donc, comment créer mes objet dérivé de cEvent, sans passer par une série de if, qui va tester, quelle objet exactmeent on veux crée ... ( le tout de facons simple si possible)
EDIT : dernier problème, certain objet sont ajouté ( selon leur type ) par une méthode AddUnique() du manager de ressources, et pas par la méthode Add() courante ...
Partager