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 :)