Bonjour,


J'ai dans mon programme une " SuperClasse " Abstraite dont dérive plusieurs autres classes ( nommons les " Classe1 ", " Classe2 " , ...). La " SuperClasse " contient une méthode " Ajouter " ( dont l'implémentation varie suivant la classe " fille " ).

Je lis un fichier XML contenant des nodes dont le traitement varie suivant le nom du noeud. Chaque type de noeud correspond à une instance ( " Classe1 ", " Classe2 " ). Ces noeuds ont les memes noms que mes classes. ex :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<Classe1>
....
</Classe1>
<Classe2>
....
</Classe2>
<Classe1>
....
</Classe1>
<Classe1>
....
</Classe1>
<Classe2>
....
</Classe2>
Ce que je voudrais faire, c'est pouvoir appeller directement la bonne classe pour le traitement sans avoir à passer par quelque chose du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if XMLNode.name = 'Classe1' then
InstanceClasse1.add(XMLNode);
Je voudrais donc pouvoir directement appeller la bonne classe ( ou l'objet...unique dans le programme et dont la rêgle de nommage est stricte ex : " MonClasse1 " ) du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
TSuperClasse(RetrouveObjetParSonNom('Mon'+XMLNode.name )).add(XMLNode);
ou

Code : Sélectionner tout - Visualiser dans une fenêtre à part
TSuperClasse(RetrouveInstanceDeClasse(XMLNode.name )).add(XMLNode);
Je précise que la " SuperClasse " ne dérive elle d'aucune classe et que " Classe1 " , " Classe2 " n'ont qu'une seule instance dans le programme.