Diferencia entre revisiones de «Factory Method (patrón de diseño)»
Revertidos los cambios de 164.73.96.2 a la última edición de TXiKiBoT usando monobook-suite |
|||
Línea 19: | Línea 19: | ||
} |
} |
||
<font color="#000088">// Definimos método abstracto</font> |
<font color="#000088">// Definimos método abstracto</font> |
||
<font color="#800080">protected abstract</font> ''' |
<font color="#800080">protected abstract</font> '''Product''' ''factoryMethod()''; |
||
} |
} |
||
Revisión del 08:03 29 jun 2009
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 de código
// Definimos la clase abstracta constructora public abstract class Creator{ // Operación que realiza public Product anOperation(){ Product aProduct = factoryMethod(); return aProduct; } // 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{ String hacer(); }
public class ConcreteProduct implements Product{ }
Y un ejemplo de uso :
public static void main(String args[]){ Creator aCreator; aCreator = new ConcreteCreator(); aCreator.anOperation(); }
Enlaces externos
- Ejemplo en Java con Diagrama UML
- Patrón Factory Method explicado en video, artículo de Lucas Ontivero donde explica, mediante un video de 9 minutos 53 segundos, el patrón Factory Method (nivel básico)