状況によって異なります。あなたは
if(object.color === 'red'){
runApple();
} else if (object.isRound){
runApple();
} else if(object.isTasty){
runApple();
}
のようなビジネスロジックを繰り返している場合は、実行するビジネスロジックは、しかし、完全に異なっているなら、あなたは、あなたがしようとするグループのすべての条件文をにすることができますよりも、
function isApple(object){
return object.color === "red" || object.isRound || object.isTasty;
}
if(isApple(object){
runApple();
}
にすべてのことをリファクタリングすることができますある種の機能
function isCondition1_2or3(){
return isCondition1() || isCondition2() || isCondition3();
}
function exectue1_2or3(){
if(isCondition1()){
execute1();
} else if (isCondition2()){
execute2();
...
}
あなたは、キーは、前の例のように異なる条件を表してあなたのビジネスドメイン内の自然なグループ化のいくつかの並べ替えを見つけることです
if(isCondition1_2_or3()){
execute1_2_or3()
} else if (...
新しい機能を使用するために大規模な機能をリファクタリングうオブジェクトが赤色または円形またはおいしいのは、オブジェクトがリンゴであることを意味します。
ただし、実際には異なる条件を表す自然なグループは存在しません。あなたのサイクロマティックな複雑さのチェッカーに、その大きな機能を単純に無視する方が簡単かもしれません。
コードに20件のif/elseがある場合は、おそらく間違っていると思います – Marko