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