Bonjour,
je me permets de m'adresser a vous afin de recueillir votre avis sur ce problème de conception tres spécifique :
Je dois concevoir un module qui sera développé en C++ pour des raisons de performances. Ce module est en charge de parser des fichiers avec un format très précis :
les 64 pemiers bits du fichiers indiquent quels sont les objets qui seront présents à la suite de ceux-ci. Concrètement, si le bit 12 et le bit 49 sont à 1 et tous les autres à 0, ces 64 premiers bits seront suivis seront suivis directement d'un objet de type 12 puis d'un objet de type 49.
Chacun de ces objets (64 au total) possède son propre format et sa propre taille.
Il est donc évitent que je vais devoir créer 64 classes différentes pour ces 64 objets afin de les parser et de recueuillir leurs infos. Cependant je voudrais réaliser ceci de la manière la plus propre possible.
La première apporche consiste à parcourir tous les bits et, dans un immense if d'instantier l'objet correspondant ou pas suivant si le bit est à 1 ou pas. Cependant, si le langage cible etait Java, je pourrais me contenter d'utiliser la reflection pour instantier mes objets dans une grande boucle.
Ma question est la suivante : y a-t-il un moyen d'éviter cet énorme test de 64 else if pour instantier mes objets sachant que le langage cible est C++ ??
Merci d'avance pour votre aide
WokMichel
Partager