Factory Method (patrón de diseño)
En
diseño de software, el patrón de diseño Factory Method consiste en utilizar una
clase constructora (al estilo del Abstract Factory) abstracta con unos cuantos
métodos definidos y otro(s) abstracto(s): el dedicado a la construcción de
objetos de un subtipo de un tipo determinado. Es una simplificación del
Abstract Factory, en la que la clase abstracta tiene métodos concretos que usan
algunos de los abstractos; según usemos una u otra hija de esta clase
abstracta, tendremos uno u otro comportamiento.
Estructura
Las
clases principales en este patrón son el creador y el producto. El creador
necesita crear instancias de productos, pero el tipo concreto de producto no
debe ser forzado en las subclases del creador, porque entonces las posibles
subclases del creador deben poder especificar subclases del producto para
utilizar.
La
solución para esto es hacer un método abstracto (el método de la fábrica) que
se define en el creador. Este método abstracto se define para que devuelva un
producto. Las subclases del creador pueden sobrescribir este método para
devolver subclases apropiadas del producto...
Ejemplo
Java
// Definimos la clase abstracta constructora public abstract class Creator{ // Operación que realiza public Product anOperation() { return factoryMethod(); } // Definimos método abstracto protected abstract Product factoryMethod(); }
Ahora definimos el creador concreto.
public class ConcreteCreator extends Creator{ protected Product factoryMethod() { return new ConcreteProduct(); } }
Y definimos el producto y su implementación concreta.
public interface Product{ public void operacion(); } public class ConcreteProduct implements Product{ public void operacion(){ System.out.println("Una operación de este producto"); } }
Y un ejemplo de uso :
public static void main(String args[]){ Creator aCreator; aCreator = new ConcreteCreator(); Product producto = aCreator.anOperation(); producto.operacion(); }
No hay comentarios:
Publicar un comentario