Extract variable Java

Icono play
Java
Técnica extract variable

La técnica de refactorización extract variable o extracción de variables sirve para simplificar o hacer manejables y comprensibles algunas expresiones que tiene el código del proyecto que estamos desarrollando. 

El propósito de cualquier técnica de refactorización es lograr un código que sea entendible, que esté organizado y que sea fácil de mantener y modificar. 

Por esta razón, hay técnicas como la extract variable que nos permiten atender hasta la expresión mínima de un programa y optimizarla para conseguir el mejor resultado en cada uno de los proyectos que desarrollamos.

¿Cuándo aplicar la técnica extract variable?

Si el código que estamos escribiendo tiene expresiones extensas que abarcan mucho espacio, que involucran varias operaciones o que tienen varios componentes que tienden a confundir, es necesario aplicar la técnica extract variable

También podemos combinar esta técnica cuando extraemos nuevos métodos, así podremos darles variables locales con un nombre que muestre claramente lo que contienen y la función que están aportando al código.

¿Por qué utilizar la técnica extract variable?

  • Para lograr que el código sea sencillo de entender, dando nombre a las variables que identifiquen de manera clara el proceso para el cual fueron creadas.
  • Reducir la necesidad de escribir comentarios extensos para documentar los proyectos que desarrollamos.
  • Para disminuir el margen de error cuando llegue el momento de actualizar, modificar u optimizar cada componente de una aplicación.

Pasos para usar la técnica extract variable

  • En primer lugar, revisaremos el código para identificar aquellas expresiones que por su complejidad requieren aplicar la técnica extract variable.
  • Una vez que tengamos ubicada la expresión que queremos refactorizar, generaremos una variable y asignaremos parte de la expresión a esa variable. 
  • Este paso anterior, podemos repetirlo tantas veces sea necesario hasta lograr que la expresión que era compleja, sea más legible.

A continuación veremos un ejemplo de código antes y después de hacer uso de la técnica extract variable, para comprender mejor cómo puede ser usada. 

package extractVariable;

public class Precio {
    double precio = 0;
    double descuento = 0;
    int cantidad = 0;
    double impt = 0;

    public Precio(double precio, double descuento, int cantidad, double impt) {
        this.precio = precio;
        this.descuento = descuento;
        this.cantidad = cantidad;
        this.impt = impt;
    }

    double calcularPrecio() {
        double precioFinal = 0;

        /*Haremos el cálculo del pago que debe realizar 
        un cliente que compra productos con un 25% de descuento
        sobre el total. El procedimiento es largo,
        confuso y comentarlo detalladamente sería engorroso
        */

        precioFinal = (precio * cantidad + (precio * cantidad * impt / 100)) 
            - (descuento / 100 * (precio * cantidad + 
            (precio * cantidad * impt / 100)));
        return (precioFinal);
    }



    public static void main(String[] args) {

        Precio obj1 = new Precio(500, 25, 2, 12);
        System.out.println("MONTO A PAGAR: " + obj1.calcularPrecio());
    }
}

Ahora, aplicaremos la técnica de extraer variables o extract variable, tantas veces como sea necesario para que la expresión que era compleja, sea comprensible para cualquiera que vea el código.

package extractVariable;

public class Precio {

    double precio = 0;
    double descuento = 0;
    int cantidad = 0;
    double impt = 0;

    public Precio(double precio, double descuento, int cantidad, double impt) {
        this.precio = precio;
        this.descuento = descuento;
        this.cantidad = cantidad;
        this.impt = impt;
    }

    double calcularPrecio() {
        double precioFinal = 0;

        //determinamos la base
        double base = (precio * cantidad);

        //determinamos el impuesto a pagar
        double impuesto = base * impt / 100;

        //obtenemos el total sin descuento
        double total = base + impuesto;

        //calculamos el descuento
        double d = total * descuento / 100;

        //calculamos el total que tiene que pagar el cliente
        precioFinal = total - d;

        return (precioFinal);
    }

    public static void main(String[] args) {

        Precio obj1 = new Precio(500, 25, 2, 12);
        System.out.println("MONTO A PAGAR: " + obj1.calcularPrecio());
    }
}
¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: