Logotipo do ConstructiCat
CodeBust.
Explorar a seção ▾

Extrair Variável.

Problema

Você tem uma expressão difícil de entender.

Solução

Coloque o resultado da expressão ou de suas partes em variáveis separadas que sejam autoexplicativas.

##Exemplo

Antes
void renderBanner() {
  if ((platform.toUpperCase().indexOf("MAC") > -1) &&
       (browser.toUpperCase().indexOf("IE") > -1) &&
        wasInitialized() && resize > 0 )
  {
    // fazer algo
  }
}
Depois
void renderBanner() {
  final boolean isMacOs = platform.toUpperCase().indexOf("MAC") > -1;
  final boolean isIE = browser.toUpperCase().indexOf("IE") > -1;
  final boolean wasResized = resize > 0;

  if (isMacOs && isIE && wasInitialized() && wasResized) {
    // fazer algo
  }
}

##Por que refatorar

A principal razão para extrair variáveis é tornar uma expressão complexa mais compreensível, dividindo-a em suas partes intermediárias. Elas podem ser:

  • A condição do operador if() ou parte do operador ?: em linguagens baseadas em C

  • Uma expressão aritmética longa sem resultados intermediários

  • Linhas longas com várias partes

Extrair uma variável pode ser o primeiro passo para realizar Extrair Método se você perceber que a expressão extraída é usada em outros lugares do seu código.

##Benefícios

  • Código mais legível! Tente dar às variáveis extraídas bons nomes que anunciem o propósito da variável de forma clara e direta. Mais legibilidade, menos comentários prolixos. Opte por nomes como customerTaxValue, cityUnemploymentRate, clientSalutationString, etc.

##Como refatorar

  1. Insira uma nova linha antes da expressão relevante e declare uma nova variável ali. Atribua parte da expressão complexa a essa variável.

  2. Substitua essa parte da expressão pela nova variável.

  3. Repita o processo para todas as partes complexas da expressão.