Substituir Variável Temporária por Consulta.
Você coloca o resultado de uma expressão em uma variável local para uso posterior no seu código.
Mova a expressão inteira para um método separado e retorne o resultado dele. Consulte o método em vez de usar uma variável. Incorpore o novo método em outros métodos, se necessário.
##Example
double calculateTotal() {
double basePrice = quantity * itemPrice;
if (basePrice > 1000) {
return basePrice * 0.95;
}
else {
return basePrice * 0.98;
}
}double calculateTotal() {
if (basePrice() > 1000) {
return basePrice() * 0.95;
}
else {
return basePrice() * 0.98;
}
}
double basePrice() {
return quantity * itemPrice;
}##Why Refactor
Esta refatoração pode preparar o terreno para aplicar Extrair Método em uma parte de um método muito longo.
A mesma expressão às vezes também pode ser encontrada em outros métodos, o que é uma razão para considerar a criação de um método comum.
##Benefits
-
Legibilidade do código. É muito mais fácil entender o propósito do método
getTax()do que a linhaorderPrice() * 0.2. -
Código mais enxuto via deduplicação, se a linha que está sendo substituída for usada em vários métodos.
##How to Refactor
-
Certifique-se de que um valor é atribuído à variável uma única vez dentro do método. Caso contrário, use Dividir Variável Temporária para garantir que a variável seja usada apenas para armazenar o resultado da sua expressão.
-
Use Extrair Método para colocar a expressão de interesse em um novo método. Certifique-se de que esse método apenas retorne um valor e não altere o estado do objeto. Se o método afetar o estado visível do objeto, use Separar Consulta de Modificador.
-
Substitua a variável por uma consulta ao seu novo método.