ConstructiCat Logo
CodeBust.
Browse section ▾

Consolidar Expressão Condicional.

Problem

Você tem vários condicionais que levam ao mesmo resultado ou ação.

Solution

Consolide todos esses condicionais em uma única expressão.

##Example

Before
double disabilityAmount() {
  if (seniority < 2) {
    return 0;
  }
  if (monthsDisabled > 12) {
    return 0;
  }
  if (isPartTime) {
    return 0;
  }
  // Calcula o valor do benefício por invalidez.
  // ...
}
After
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.

  1. Consolide os condicionais em uma única expressão usando and e or. Como regra geral ao consolidar:

    • Condicionais aninhados são unidos com and.

    • Condicionais consecutivos são unidos com or.

  2. Aplique Extrair Método às condições do operador e dê ao método um nome que reflita o propósito da expressão.