Я реализую некоторые методы, которые используют операторы switch для различения разных случаев:
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;}
}
}
Вышеописанное прекрасно работает, когда, далее вглубь бизнес-логики, я вызываю doThis () внутри других методов, которым требуется функциональность doThis ().
Однако в этот момент я немного запутался, как включить другие условия / ограничения, установленные для каждого случая вышеуказанного переключателя.
Я имею в виду, что когда я вызываю doThis () внутри скажем
Пример логики:
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()
}
}
На данный момент мне не удалось найти изящный, чистый и компактный способ сделать это. Возможно, есть какие-нибудь идеи? Как я могу явно ориентироваться на каждый случай переключения? Могу ли я использовать новый переключатель для реализации этой условной логики?
Любые предложения приветствуются. Очень ценю вашу помощь.