2017-09-17 12 views
0

아래 자바가 있습니다. 사용자가 옵션에 해당하는 숫자 (opcaoMenu)를 입력하고이 옵션을 기반으로 메소드를 호출하는 메뉴에서 호출됩니다. 이 코드는 8의 순환 복잡성을 가지고 있으며이를 줄이려고합니다. 그러나 나는 단서가 없습니다.이 코드의 McCabe Cyclomatic Complexity를 어떻게 줄일 수 있습니까?

private static EstruturaStack decisaoMenu(EstruturaStack topoStack, int opcaoMenu) { 
    if (opcaoMenu == 1) { 
     topoStack = empilharChapa(topoStack); 
    } 
    if (opcaoMenu == 2) { 
     consultarTodasChapas(topoStack); 
    } 
    if (opcaoMenu == 3) { 
     topoStack = empilhar(topoStack); 
    } 
    if (opcaoMenu == 4) { 
     topoStack = esvaziarPatio(topoStack); 
    } 
    if (opcaoMenu == 5) { 
     verificarQuantidade(topoStack); 
    } 
    if (opcaoMenu == 6) { 
     filtrarPorPedido(topoStack); 
    } 
    if (opcaoMenu == 7) { 
     exibirMensagem("MENSAGEM DO PROGRAMA:\n\nOpção em desenvolvimento!", "Mensagem do Programa"); 
    } 
    return topoStack; 
} 

감사가 opcaoMenu 항상 다음의 경우 마지막을 완화하는 경우 - 다른 화합물을 사용할 수있는 범위 1..7에 있음을 부여 있다면

답변

0

. 이렇게하면 복잡성이 1 씩 줄어 듭니다.

if (opcaoMenu == 1) { 
    topoStack = empilharChapa(topoStack); 
} 
else if (opcaoMenu == 2) { 
    consultarTodasChapas(topoStack); 
} 
else if (opcaoMenu == 3) { 
    topoStack = empilhar(topoStack); 
} 
else if (opcaoMenu == 4) { 
    topoStack = esvaziarPatio(topoStack); 
} 
else if (opcaoMenu == 5) { 
    verificarQuantidade(topoStack); 
} 
else if (opcaoMenu == 6) { 
    filtrarPorPedido(topoStack); 
} 
else { 
    exibirMensagem("MENSAGEM DO PROGRAMA:\n\nOpção em desenvolvimento!", "Mensagem do Programa"); 
}