ConstructiCat Logo
CodeBust.
Browse section ▾

Extraire une variable.

Problem

Vous avez une expression difficile à comprendre.

Solution

Placez le résultat de l'expression ou de ses parties dans des variables distinctes qui se passent d'explication.

##Example

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

##Why Refactor

La principale raison d'extraire des variables est de rendre une expression complexe plus compréhensible, en la divisant en ses parties intermédiaires. Il peut s'agir de :

  • La condition de l'opérateur if() ou une partie de l'opérateur ?: dans les langages dérivés du C

  • Une longue expression arithmétique sans résultats intermédiaires

  • De longues lignes en plusieurs parties

Extraire une variable peut être la première étape vers l'application d'Extraire une méthode si vous constatez que l'expression extraite est utilisée à d'autres endroits de votre code.

##Benefits

  • Du code plus lisible ! Essayez de donner aux variables extraites de bons noms qui annoncent leur but haut et fort. Plus de lisibilité, moins de commentaires interminables. Privilégiez des noms comme customerTaxValue, cityUnemploymentRate, clientSalutationString, etc.

##How to Refactor

  1. Insérez une nouvelle ligne avant l'expression concernée et déclarez-y une nouvelle variable. Affectez-lui une partie de l'expression complexe.

  2. Remplacez cette partie de l'expression par la nouvelle variable.

  3. Répétez le processus pour toutes les parties complexes de l'expression.