Bonjour,
Je travaille sur un logiciel qui devrait être capable sans et avec une interface graphique. Pour exécuter sans interface graphique, on passe les paramètres dans un fichier xml.
On peut voir ca comme trois modules: gui, xml et core. Le core est un algorithme heuristique.
Lorsque l'application est exécuté à partir du mode graphique, le gui configure le core en lui passant les paramètres et l'exécute:
De même pour le mode xml:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 // dans gui: int time = this->timeSpinBox->value(); int nIterations = this->nIterationsSpinBox->value(); core.setRunTime(time); core.setNumberOfIterations(nIterations); ...
On peut remarquer tout de suite qu'il y a du code dupliqué et que ca pourrai arriver qu'un développeur ajoute des paramètres au mode graphique et oublies des les ajouter au mode xml et vice versa. En conséquence on ne peut garantir que les deux modes fonctionnent de la même façon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 // dans xml: int time = this->readFromXML("time"); int nIterations = this->readFromXML("nIterations"); core.setRunTime(time); core.setNumberOfIterations(nIterations); ...
Pour éviter ce problème, j'ai pensé à faire en sorte que gui écrive un fichier xml et que xml le lise par la suite pour exécuter core. De cette façon on est au moins sure que si gui fonctionne correctement, xml fonctionne aussi car gui passe par xml. L'autre sens est moins grave car habituellement c'est gui qui évolue avant xml.
Est ce que vous pensez que c'est la bonne façon de faire ? sinon des propositions ?
Merci
Partager