다음 Java 코드는 다소 높은 Cyclomatic Complexity를 제공합니다. 나는 그것을 적절히 줄이는 방법을 찾고 싶다. 어떻게하면 좋을까요?간격으로 순환 적 복잡성 감소
코드에서 두 값 사이에 값이 있는지 여부에 따라 값의 해당 결과를 얻습니다. 값 자체는 -10000에서 +200000 사이의 정수가 될 수 있습니다. 문제는 주로 "보다 작거나 같음"연산자에 있으며 라이브러리의 단순한 사용을 방해합니다. 두 한계 사이의 범위가 다를 수 있으며 10000의 범위를 말하는 것입니다. 예제 간격은 [< 0 ... 10000 .... 25000 ... 32500 ...]입니다. 범위는 비즈니스가 결정한 임의의 숫자입니다.
LIMIT 값은 클래스 시작 부분에 정의 된 상수라고 가정 할 수 있습니다. 동일한 결과 값이 설정됩니다. 상수에서 다른 것으로 변경하는 것이 가능합니다.
아이디어가 있으십니까?
private int function getBasedOnInterval(int value){
int result;
if(value <= 0){
result = RESULT1;
}else if(value <= LIMIT1){
result = RESULT2;
}else if(value <= LIMIT2){
result = RESULT3;
}else if(value <= LIMIT3){
result = RESULT4;
}else if(value <= LIMIT4){
result = RESULT5;
}else if(value <= LIMIT5){
result = RESULT6;
}else if(value <= LIMIT6){
result = RESULT7;
}else if(value <= LIMIT7){
result = RESULT8;
}else if(value <= LIMIT8){
result = RESULT9;
}else if(value <= LIMIT9){
result = RESULT10;
}else if(value <= LIMIT10){
result = RESULT11;
}else if(value <= LIMIT11){
result = RESULT12;
}else if(value <= LIMIT12){
result = RESULT13;
}else if(value <= LIMIT13){
result = RESULT14;
}else{
result = RESULT15;
}
return result;
}
몇 가지 예제 값을 줄 수 있습니까? 설정된 간격으로 LIMITxx입니까? 그들은 무작위인가? – Craig