Patrones de diseño: Prototype

Buenas a todos, continuamos con nuestros artículos sobre patrones de diseño, en este caso con Prototype, este será el último de la saga de patrones creacionales, luego seguiremos con los estructurales.


Os dejo con la resumida explicación:


Su objetivo principal es copiar un objeto ya existente, es decir, clonarlo.


Este patrón resulta útil en escenarios donde es impreciso abstraer la lógica que decide qué tipos de objetos utilizará una aplicación, de la lógica que luego usarán esos objetos en su ejecución.

Los motivos de esta separación pueden ser variados, por ejemplo, puede ser que la aplicación deba basarse en alguna configuración o parámetro en tiempo de ejecución para decidir el tipo de objetos que se debe crear.


Resumamos y entendamos esto:


Es decir, tenemos una base con una serie de métodos y utilidades y a partir de ahí crearemos un objeto u otro, imaginemos un coche, tenemos un prototipo con la carrocería y las ruedas, pero luego si es un deportivo pues tendrá color rojo, alerones, y motor más grande, si es un familiar, pues se agrandará la carrocería, el maletero y será de color azul, etc.


¿Y cómo implementarlo?


Para ello utilizara una interfaz:

public interface Interface() extends Cloneable {
    Interface clonar();
}

Esta interfaz tendrá un método que será el encargado de "clonar" los objetos, y devolverá un objeto del mismo tipo que la interfaz.


La interfaz sera implementada por las clases hijas:

public class Hija1() implements Interface {
 
 public Interface clonar() {
  Hija1 clon = new Hija1();

  try{
      clon = (Hija1) clone();
      return clon;
  }catch(Exception ex) {
     // Capturar excepcion
  }
 }
}

Y desde la clase principal podremos hacer los clones:

public class main () {
 public static void main () {
  Hija1 h1 = new Hija1();
  Hija1 h1clon = h1.clonar();
 }
}

En cuánto a sus posibles desventajas:

- La jerarquía de prototipos debe ofrecer la posibilidad de clonar un elemento y esta operación puede no ser sencilla de implementar.

- Por otro lado, si la clonación se produce frecuentemente, el coste puede ser importante


Espero que te haya gustado esta pequeña explicación, como siempre digo este es un resumen bastante práctico, y para que tengas una visión general del patrón, si necesitas profundizar: "San Google" ;)


Nos vemos en la próxima, espero que te haya gustado :)

71 vistas

©2020 por Juanma Perez.