Reemplazar Variable Temporal por Consulta.
Colocas el resultado de una expresión en una variable local para su uso posterior en el código.
Mueve toda la expresión a un método independiente y devuelve el resultado desde él. Consulta el método en lugar de usar una variable. Incorpora el nuevo método en otros métodos, si es necesario.
##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 refactorización puede sentar las bases para aplicar Extraer Método a una parte de un método muy largo.
La misma expresión a veces puede encontrarse también en otros métodos, lo que es una razón para considerar la creación de un método común.
##Benefits
-
Legibilidad del código. Es mucho más fácil entender el propósito del método
getTax()que la líneaorderPrice() * 0.2. -
Código más esbelto mediante la eliminación de duplicación, si la línea reemplazada se utiliza en varios métodos.
##How to Refactor
-
Asegúrate de que se asigne un valor a la variable una sola vez dentro del método. Si no es así, usa Dividir Variable Temporal para garantizar que la variable se use únicamente para almacenar el resultado de tu expresión.
-
Usa Extraer Método para colocar la expresión de interés en un nuevo método. Asegúrate de que este método solo devuelva un valor y no cambie el estado del objeto. Si el método afecta al estado visible del objeto, usa Separar Consulta de Modificador.
-
Reemplaza la variable con una consulta a tu nuevo método.