Bonjour,
Dans un projet de d�veloppement C++, j'utilise et manipule des points. Ces derniers ont de nombreux attributs (id, x, y et z notamment). Tous les points utiles au fonctionnement sont stock�s dans un fichier XML du type:
Les manipulations sur ces points sont plus ou moins pouss�es, avec des calculs divers, des approximations de plans, calculs de distances point-plan, etc...
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 <Points> <Point> <id>1</id> <x>1000</x> <y>5000</y> <z>100</z> </Point> ... </Points>
Quelle est la meilleure fa�on de proc�der quant � l'architecture du code?
A priori, je pense � 2 solutions totalement diff�rentes:
1- Cr�er une classe Point (et une classe Plan...), et d�s le d�but du programme, lire le XML et instancier directement chaque point contenu dans le fichier. Les calculs effectu�s le seront directement sur les objets, avec les m�thodes contenues dans chaque classe (plus une classe "Calculs" pour les autres op�rations qui ne rentreraient pas dans les classes).
2- Ne pas cr�er de classe, uniquement des fichiers .cpp et .h pour les calculs. Lors de l'ex�cution du programme, on chargerait une fois le fichier XML dans une variable, puis on appellerait les diff�rentes fonctions en passant en variable les n�uds xml n�cessaires. On n'aurait donc pas besoin de cr�er d'objet, tout se ferait � partir de l'xml.
Pour r�sumer:
- fonctionnement 1:
On charge le XML -> on cr�e tous les objets points n�cessaires.
On manipule les objets directement � partir des m�thodes des classes.
exemple:
constructeur: Point i(id,x,y,z);
double dist = CalculDistancePointPlan(Point i, Plan p);
- fonctionnement 2:
On charge le XML -> on garde le tout dans une variable pour utilisation ult�rieure.
On ex�cute le programme, et lors du besoin de param�tres, on va les chercher dans le flux xml avec une requ�te XQuery.
exemple:
double x = r�sultat de la requ�te (donne moi le x du point courant)
idem pour y et z
idem pour le plan
double dist = CalculDistancePointPlan(x,y,z, a,b,c,d);
A mon humble avis de d�butant programmeur, la solution 1- me parait plus "propre", plus ordonn�e, et conceptuellement plus logique. Cependant, cette solution perd totalement tous les avantages li�s � l'utilisation du XML, en le lisant pas � pas comme on le ferait pour un simple fichier .ini. Alors que la seconde solution exploite les possibilit�s � fond en utilisant XQuery � chaque appel.
Quel est votre avis sur la question?
Partager