Proposer des options (fichier properties ?)
Bonjour,
Je cherche à proposer différentes options pour l’exécution d’un programme. Pour simplifier mettons qu’il s’agit de 3 manières (manière 1, manière 2, manière 3) de faire un calcul.
Pour le moment je fonctionne comme cela :
J’ai une énumération qui défini les manières disponibles :
Code:
public enum ManieresDeCalcul {MANIERE_1, MANIERE_2, MANIERE_3}
Et dans ma classe principale j’ai une fonction calcule() qui attend la manière comme paramètre. Dans cette méthode, à l’aide d’un switch, j’utilise la méthode qui me convient :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public int calcule(ManieresDeCalcul maniere) {
int resultat;
resultat = 0;
switch(maniere) {
case MANIERE_1 :
//code pour la maniere de calcul 1 => resultat
break;
case MANIERE_2 :
//code pour la maniere de calcul 2
break;
case MANIERE_3 :
//code pour la maniere de calcul 3
break;
}
return resultat;
} |
Première question : s’agit t’il d’une bonne méthode pour résoudre ce type de problème ou y a t’il d’autre moyen plus élégant ?
* * *
Ensuite, j’aimerais avoir la possibilité d’avoir un comportement par défaut. Il me semble que cela ne pose pas de problème, je n’ai qu’à avoir la même méthode sans paramètres :
Code:
1 2 3
| public int calcule() {
return calcule(ManieresDeCalcul.MANIERE_1);
} |
(en considérant que la MANIERE_1 est celle par défaut)
* * *
Maintenant je souhaiterais pouvoir définir quelle va être la méthode par défaut à utiliser (un fichier texte me semble assez approprié).
Il me semble que Java propose un mécanisme de fichier Properties pour répondre à ce type de problème.
S'agit il d'une bonne idée (sinon comment faire autrement) ?
Où puis je trouver un exemple, ou de la doc pour en savoir plus ?
Est-ce que dans le fichier properties je peux forcer le fait de devoir avoir une valeur contenue dans une énumération (ou faut-il que je refasse un mapping de type String -> Valeur de l’Enum)
Je voudrais utiliser une méthode standard et utilisée par tous, histoire d'éviter de réinventer une roue qui doit déjà exister en standard...
Merci