Substituir Número Mágico por Constante Simbólica.
Seu código usa um número que tem um certo significado.
Substitua esse número por uma constante com um nome legível por humanos que explique o significado do número.
##Example
double potentialEnergy(double mass, double height) {
return mass * height * 9.81;
}static final double GRAVITATIONAL_CONSTANT = 9.81;
double potentialEnergy(double mass, double height) {
return mass * height * GRAVITATIONAL_CONSTANT;
}##Why Refactor
Um número mágico é um valor numérico que aparece no código-fonte, mas não tem significado óbvio. Esse “antipadrão” torna mais difícil entender o programa e refatorar o código.
Mais dificuldades surgem quando você precisa alterar esse número mágico. Localizar e substituir não funciona aqui: o mesmo número pode ser usado para propósitos diferentes em lugares diferentes, o que significa que você terá que verificar cada linha de código que usa esse número.
##Benefits
-
A constante simbólica pode servir como documentação viva do significado do seu valor.
-
É muito mais fácil alterar o valor de uma constante do que procurar esse número por toda a base de código, sem o risco de alterar acidentalmente o mesmo número usado em outro lugar para um propósito diferente.
-
Reduz o uso duplicado de um número ou string no código. Isso é especialmente importante quando o valor é complicado e longo (como
3.14159ou0xCAFEBABE).
##How to Refactor
-
Declare uma constante e atribua a ela o valor do número mágico.
-
Encontre todas as menções ao número mágico.
-
Para cada um dos números que você encontrar, verifique bem se o número mágico, neste caso específico, corresponde ao propósito da constante. Se sim, substitua o número pela sua constante. Este é um passo importante, pois o mesmo número pode significar coisas absolutamente diferentes (e ser substituído por constantes diferentes, conforme o caso).