Consolidar Expressão Condicional.
Você tem vários condicionais que levam ao mesmo resultado ou ação.
Consolide todos esses condicionais em uma única expressão.
##Example
double disabilityAmount() {
if (seniority < 2) {
return 0;
}
if (monthsDisabled > 12) {
return 0;
}
if (isPartTime) {
return 0;
}
// Calcula o valor do benefício por invalidez.
// ...
}double disabilityAmount() {
if (isNotEligibleForDisability()) {
return 0;
}
// Calcula o valor do benefício por invalidez.
// ...
}##Why Refactor
Seu código contém muitos operadores alternados que executam ações idênticas. Não fica claro por que os operadores estão separados.
O principal objetivo da consolidação é extrair o condicional para um método separado, para maior clareza.
##Benefits
-
Elimina código duplicado de fluxo de controle. Combinar vários condicionais que têm o mesmo “destino” ajuda a mostrar que você está fazendo apenas uma verificação complicada que leva a uma única ação.
-
Ao consolidar todos os operadores, agora você pode isolar essa expressão complexa em um novo método com um nome que explica o propósito do condicional.
##How to Refactor
Antes de refatorar, certifique-se de que os condicionais não têm “efeitos colaterais” nem modificam algo, em vez de simplesmente retornar valores. Os efeitos colaterais podem estar escondidos no código executado dentro do próprio operador, como quando algo é adicionado a uma variável com base nos resultados de um condicional.
-
Consolide os condicionais em uma única expressão usando
andeor. Como regra geral ao consolidar:-
Condicionais aninhados são unidos com
and. -
Condicionais consecutivos são unidos com
or.
-
-
Aplique Extrair Método às condições do operador e dê ao método um nome que reflita o propósito da expressão.