從條件引用不同的方法內的交換機的每個情況下,我實現一些方法,其使用開關語句不同的情況之間進行區分:在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;}
}
}
上述正常工作的時候,進一步向下業務邏輯,我在其他需要doThis()功能的方法中調用doThis()。
但是,現在我有點困惑,如何納入上述開關的每種情況下提出的其他條件/限制。
我的意思是,當我打電話內doThis()說biggerOperation(),我有需要針對在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()
}
}
我還沒有能夠找出一個優雅,乾淨,緊湊的方式來做到這一點。也許有什麼想法?我如何明確地針對交換機的每個案例?我可以使用新的開關來實現該條件邏輯嗎?
歡迎任何建議。非常感謝你的幫助。
感謝您的輸入。如果你不介意的話,你能否多解釋一下新的邏輯?使用命令模式,你的意思是封裝方法調用? – denchr 2009-08-02 14:46:31
看到這個問題:http://stackoverflow.com/questions/1199646/long-list-of-if-if-statements-in-java/1199677 – 2009-08-02 14:51:24