상황에 따라 다릅니다. 당신이
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