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

Consolidar Fragmentos Condicionais Duplicados.

Problema

Código idêntico pode ser encontrado em todas as ramificações de um condicional.

Solução

Mova o código para fora do condicional.

##Exemplo

Antes
if (isSpecialDeal()) {
  total = price * 0.95;
  send();
}
else {
  total = price * 0.98;
  send();
}
Depois
if (isSpecialDeal()) {
  total = price * 0.95;
}
else {
  total = price * 0.98;
}
send();

##Por que refatorar

Código duplicado é encontrado dentro de todas as ramificações de um condicional, muitas vezes como resultado da evolução do código dentro das ramificações condicionais. O desenvolvimento em equipe pode ser um fator que contribui para isso.

##Benefícios

  • Eliminação de código duplicado.

##Como refatorar

  1. Se o código duplicado estiver no início das ramificações do condicional, mova-o para um ponto antes do condicional.

  2. Se o código for executado ao final das ramificações, coloque-o depois do condicional.

  3. Se o código duplicado estiver situado aleatoriamente dentro das ramificações, primeiro tente mover o código para o início ou o fim da ramificação, dependendo de se isso altera o resultado do código subsequente.

  4. Se for apropriado e o código duplicado tiver mais de uma linha, tente usar Extrair Método.