J'ai un ENUM avec certains Etats en elle:Refactor instruction if utiliser modèle approprié
enum State
{
A,
B,
C,
D
}
et un objet qui a un état correspondant:
class MyObject
{
State state;
}
J'ai besoin d'écrire un algorithme prend deux instances myObject et fait quelque chose en fonction des états particuliers de ces instances:
void doWork(MyObject o1, MyObject o2)
{
if (o1.state == A && o2.state == A)
{
// do something
}
else if (o1.state == A && o2.state == B)
{}
// etc for all combinations...
}
Il est évident que cette approche a beaucoup de problèmes et j'aimerais la changer pour idéalement se débarrasser de l'instruction if/else.
Existe-t-il un modèle pour une telle exigence?
Merci
@ org.life.java: non-sens - utiliser == est complètement sûr avec des énumérations. –
@ Michael Borgwardt Je m'excuse, supprimé le commentaire également pour le même scénario '==' est plus préférable, a appris de cela http://stackoverflow.com/questions/1750435/comparing-java-enum-members-or-equals –