J'implémentant des méthodes qui utilisent des instructions de commutation pour distinguer les différents cas:référençant chaque cas d'un passage d'une condition dans une autre méthode en java
private void doThis(){
switch(command){
case on: {status = doCalculationsA; break;}
case off: {status = doCalculationsB; break;}
case idle: {status = doCalculationsC; break;}
case stdby:{status = doCalculationsD; break;}
}
}
Les travaux ci-dessus bien, quand, plus bas dans la la logique métier, j'appelle doThis() dans d'autres méthodes qui ont besoin de la fonctionnalité doThis().
Cependant, à ce moment, je suis un peu confus comment incorporer d'autres conditions/restrictions posées sur chaque cas du commutateur ci-dessus.
Je veux dire, quand je l'appelle doThis() à l'intérieur dire biggerOperation(), j'ai de nouvelles conditions qui doivent être appliquées contre chaque cas du commutateur appartenance à la fonction doThis():
logique Exemple:
biggerOperation(){
doThat();
doTheOther();
if(somethingIsTrue){
execute "case: on" of doThis()
}
else if(somethingElseIsTrue){
execute "case: off" of doThis()
}
else if(aThirdThingIsTrue){
execute "case: idle" of doThis()
}
else if(aFourthThingIsTrue){
execute "case: stdby" of doThis()
}
}
Je n'ai pas été capable de trouver une façon élégante, propre et compacte de le faire dès maintenant. Y a-t-il des idées peut-être? Comment puis-je cibler explicitement chaque cas d'un commutateur? Puis-je utiliser un nouveau commutateur pour implémenter cette logique conditionnelle?
Toutes les suggestions sont les bienvenues. Appréciez beaucoup votre aide.
Merci de votre participation. Si cela ne vous dérange pas, pourriez-vous expliquer un peu plus sur la nouvelle logique? En utilisant le modèle de commande, vous voulez dire encapsuler l'invocation de méthode? – denchr
voir cette question: http://stackoverflow.com/questions/1199646/long-list-of-if-statements-in-java/1199677 –
Oui, il semble assez similaire. Je vous remercie de le faire remarquer! – denchr