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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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