ConstructiCat Logo
CodeBust.
Browse section ▾

Extraer Variable.

Problem

Tienes una expresión difícil de entender.

Solution

Coloca el resultado de la expresión o de sus partes en variables separadas que se expliquen por sí mismas.

##Example

Before
void renderBanner() {
  if ((platform.toUpperCase().indexOf("MAC") > -1) &&
       (browser.toUpperCase().indexOf("IE") > -1) &&
        wasInitialized() && resize > 0 )
  {
    // hacer algo
  }
}
After
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) {
    // hacer algo
  }
}

##Why Refactor

La razón principal para extraer variables es hacer más comprensible una expresión compleja, dividiéndola en sus partes intermedias. Estas podrían ser:

  • La condición del operador if() o una parte del operador ?: en los lenguajes basados en C

  • Una expresión aritmética larga sin resultados intermedios

  • Líneas largas de varias partes

Extraer una variable puede ser el primer paso hacia la aplicación de Extraer Método si ves que la expresión extraída se utiliza en otros lugares de tu código.

##Benefits

  • ¡Código más legible! Intenta dar a las variables extraídas buenos nombres que anuncien su propósito de forma clara y rotunda. Más legibilidad, menos comentarios prolijos. Opta por nombres como customerTaxValue, cityUnemploymentRate, clientSalutationString, etc.

##How to Refactor

  1. Inserta una nueva línea antes de la expresión relevante y declara allí una nueva variable. Asigna parte de la expresión compleja a esta variable.

  2. Reemplaza esa parte de la expresión con la nueva variable.

  3. Repite el proceso para todas las partes complejas de la expresión.