ich einige Methoden bin der Umsetzung der Switch-Anweisungen verwenden, um zwischen den verschiedenen Fällen zu unterscheiden:jeden Fall eines Schalters von einem bedingten innerhalb einer anderen Methode in Java-Referenzierung
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;}
}
}
Die oben funktioniert gut, wenn weiter unten in der Geschäftslogik, ich rufe doThis() innerhalb anderer Methoden auf, die die doThis() Funktionalität benötigen.
Allerdings bin ich in diesem Moment ein wenig verwirrt, wie andere Bedingungen/Einschränkungen in jedem Fall des oben genannten Schalters einbeziehen.
meine ich, wenn ich rufe DoThis() innerhalb sagen biggerOperation(), I neue Bedingungen, die gegen jeweils des Schalters in der DoThis() Funktion gehören, angewendet werden müssen:
Beispiellogik:
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()
}
}
Ich war nicht in der Lage, eine elegante, saubere und kompakte Möglichkeit zu finden, dies ab sofort zu tun. Gibt es vielleicht Ideen? Wie kann ich explizit auf jeden Fall eines Switches abzielen? Kann ich einen neuen Switch verwenden, um diese bedingte Logik zu implementieren?
Alle Vorschläge sind willkommen. Vielen Dank für Ihre Hilfe.
Danke für Ihre Eingabe. Wenn es Ihnen nichts ausmacht, könnten Sie vielleicht etwas mehr über die neue Logik erklären? Mit dem Befehlsmuster meinen Sie den Methodenaufruf? – denchr
siehe diese Frage: http://stackoverflow.com/questions/1199646/long-list-of-if-statements-in-java/1199677 –
Ja, es sieht ziemlich ähnlich aus. Danke für das Aufzeigen! – denchr