Patrones de diseño: Factory

Su principal objetivo es devolver instancias de objetos, a través de una fábrica por medio de algún identificador. Nosotros le pedimos un objeto a la fábrica y ella nos lo devuelve, esto es útil para desacoplar la lógica de creación del negocio.


Creamos una interfaz común para las clases:

public interface IClass () {
 	void method1();
 	void method2();
}

Creamos las clases que vamos a utilizar en nuestra aplicación, todas implementan la interfaz que hemos creado previamente:

public class Class1 implements IClass() {
}
public class Class2 implements IClass() { 
}

Ahora la fábrica, que nos va a devolver las instancias que queramos, como vemos el método getObject devuelve un objeto de tipo IClass que es la interfaz que implementan todas las clases va a producir la fábrica:

public class Factory () {

 public IClass getObject(String id) {
   if(id.equals("1")) return new Class1();
   if(id.equals("2")) return new Class2();
 }
}

Clase principal de la aplicacion, donde vamos a pedir las instancias que deseemos, dependiendo del id que le pasemos:

.
.
IClass ic1 = factory.getObject("1");
IClass ic2 = factory.getObject("2");
.
.

Este tipo de patrón nos podría ser útil por ejemplo para la refactorización de una sentencia switch().


Espero que te haya quedado una visión general y simple del patrón, si crees que debería añadirse algo a la explicación lo puedes escribir en comentarios o hacermelo llegar a través de redes sociales.


Un saludo y hasta la próxima :)


56 vistas

©2020 por Juanma Perez.