0

4つのブール値の可能なオプションのすべての組み合わせを考慮する必要があるという問題があります。例えば

useFeatured、groupBy、orderBy、および昇順の 4 つのブール値があります。可能な組み合わせは..

featured.
featured & orderby.
featured & orderby & groupby.
featured & orderby & groupby & ascending.

featured & groupby.
featured & groupby & ascending.

featured & ascending
featured & ascedning & orderby

orderby
orderby & groupby
orderby & groupby & ascending

groupby
groupby & ascending

ascending
ascending & orderby

現時点では、これらのオプションに対して巨大な if else if else ツリーがあり、それが唯一の解決策であるとは信じがたいですが、他に何も考えられません。

if else ツリーへのリンクは次のとおりです。

if(featured){
if(orderby){
    if(groupby){
            if(ascedning){
                    //featured orderby groupby ascending
            }else{
                    //featured orderby groupby
            }
    }else{
            //featured orderby
    }
}else if(groupby){
    if(ascedning){
            //featured groupby ascending
    }else{
            //featured groupby
    }
}else if(ascending){
    if(orderby){
            //featured ascending orderby
    }else{
            //featured ascending
    }
}else{
    //featured
}
 }else if(orderby){
    if(groupby){
            if(ascending){
                    //orderby groupby ascending
            }else{
                    //orderby groupby
            }
    }
}else if(groupby){
    if(ascending){
            //groupby ascending
    }else{
            //groupvy
    }
 }else if(ascending){
    if(orderby){
            //ascending & orderby
    }else{
            //ascending
    }
 }else{
    //orderby
 }

フォーマットが乱れている場合はペーストビン。http://pastebin.com/ECgASU3C

誰もが私が採用できるより良い解決策を手に入れましたか? 私を救ってください!

4

1 に答える 1

0

これにはスイッチケースを使用できます...しかし、そうでない場合はより良いオプションです

于 2013-04-10T09:24:37.207 に答える