Patrones de Creación
FACTORY METHOD
• Propósito
• Define una interfaz para crear un objeto, pero deja que
sean las subclases quienes decidan qué clase instancia.
• Permite a una clase delegar en sus subclases la creación de
objetos.
Patrones de Creación
• Aplicabilidad FACTORY METHOD
• Una clase no puede prever la clase de objetos que debe
crear.
• define una interfaz para crear objetos, pero deja que sean
las subclases quienes decidan qué clases instanciar;
permite que una clase delegue en sus subclases la creación
de objetos.
• Las clases delegan las responsabilidades en una de entre
varias clases auxiliares, y queremos localizar qué subclase
auxiliar concreta es la que se delega.
Patrones de Creación
FACTORY METHOD
• Estructura
Patrones de Creación
FACTORY METHOD
• Consecuencias:
• Proporciona enganches para las subclases. (flexibilidad)
• Conecta jerarquías de clases paralelas.
Patrones de Creación Ejemplo
EJEMPLO
• Seguimos con la pizzería, pero en este caso se fabrican de
forma global
class Factory Method
Pizzeria
Pizza
+ CrearPizza(string): Pizza
if [Link]("napo") then
return new PizzaNapolitana
end if
PizzaCancha PizzaNapolitana
PizzeriaArgentina PizzeriaItaliana
+ CrearPizza(string): Pizza + CrearPizza(string): Pizza
Patrones de Creación
COMPARACIÓN
• Abstract Factory produce implementación de una Factory en
particular (IPizzeriaXFactory)
• Factory Method produce implementación (Pizza) de una
Interface determinada (Ipizza)