Replace Method en Java

Icono play
Java
Técnica replace method

La refactorización siempre busca que el código se mantenga sencillo de entender y fácil de revisar, modificar y mantener. En el caso de la técnica replace method o reemplazar método, su objetivo es el mismo, hacer que cada método sea más eficiente.

Como programadores, nuestro objetivo debe ser velar porque el código, internamente, tenga estructuras sencillas, breves, cuya finalidad sea fácil de comprender para cualquiera que lo observe. 

Aunque a simple vista aplicar la técnica replace method o reemplazar método, puede parecer un tanto complejo, es importante tenerla presente cuando trabajemos con programación orientada a objetos (POO)

¿Cuándo aplicar la técnica replace method?

Si en el proyecto que estamos desarrollando, un método se ha vuelto muy extenso y tiene numerosas variables locales o internas, es un buen momento para que consideremos el uso de la técnica replace method.

Esto nos permitirá convertir el método en una clase independiente y poder manejar todo su contenido de una manera más sencilla, logrando un código que cumpla su objetivo sin que su extensión sea mayor de lo usual.

¿Por qué utilizar la técnica replace method?

  • Para reducir la extensión del código de los métodos que se han hecho muy grandes y pueden ser difíciles de mantener y depurar.
  • Para que cada uno de los proyectos que desarrollemos sea más comprensible.
  • Para luego poder aplicar otras técnicas de refactorización estructurando el código en fragmentos más pequeños.

Pasos para usar la técnica replace method

  • Revisaremos el código en busca de métodos que son muy extensos y/o que tienen numerosas variables locales.
  • Construiremos una nueva clase y le daremos un nombre que haga referencia a la tarea que cumple el método que vamos a factorizar.
  • Incluiremos un campo para cada una de las variables que usará el método.
  • La nueva clase tendrá un método constructor que inicialice todo lo que hemos mencionado hasta ahora.
  • Incluiremos un método que contendrá el código que hace la operación que tenía el método original.
  • Usaremos el objeto que hemos creado para invocar los métodos en el objeto original, reemplazando el método antiguo por este objeto nuevo y su método.

Veamos un código que puede servir para ejemplificar la esencia de esta técnica:

public class AntesReplace {

    public double Peso() {

        double PesoPrimario = 1;
        double PesoSecundario = 2;
        double PesoTerciario = 3;
        double PesoMedio = PesoPrimario + PesoSecundario + PesoTerciario;
        return PesoMedio;
    }

}

Vemos una clase con un método que tiene varias variables internas.

Aplicando la técnica replace method, en primer lugar crearemos una clase como sigue:

package replace;

public class CalcularPrecio {

    private double Peso1;
    private double Peso2;
    private double Peso3;

    public CalcularPrecio(double d, double e, double f) {
        this.Peso1 = d;
        this.Peso2 = e;
        this.Peso3 = f;
    }



    public double compute() {

        double PesoMedio = Peso1 + Peso2 + Peso3;
        return PesoMedio;
    }
}

Y luego crearemos un objeto de esta nueva clase, para que efectivamente se ejecute la tarea que acabamos de programar:

package replace;

public class DespuesReplace {

    public static double PesoMedio() {
        return new CalcularPrecio(0.9, 8.5, 5.6).compute();
    }

    public static void main(String[] args) {

        System.out.println(PesoMedio());
        System.out.println(new CalcularPrecio(1.0, 2.3, 2.7).compute());
    }

}

Aunque en un principio esto puede resultarnos un tanto confuso, básicamente se trata de hacer que cada fragmento del código sea breve, ejecute una única tarea y pueda usarse en múltiples lugares del proyecto.

¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: