Manual de Ingeniería Informática/Patrones Creacionales
Ir a la navegación
Ir a la búsqueda
Abstract Factory (Fábrica abstracta)[editar]
Problema[editar]
Proporcionar una interfaz que permite crear familias de objetos relacionados entre sí, sin especificar (ni conocer a priori) sus clases concretas.
Solución[editar]
Participantes:
- FabricaAbstracta: Declara una interfaz para operaciones que crean objetos producto abstractos.
- FabricaConcreta: Implementa las operaciones para crear objetos producto concretos.
- ProductoAbstracto:Declara una interfaz para un tipo de objeto producto.
- ProductoConcreto: Define un objeto producto para que sea creado por la fábrica correspondiente. Implementa la interfase ProductoAbstracto.
- Cliente: Sólo usa interfaces declaradas por las clases FabricaAbstracta y ProductoAbstracto.
Beneficios, Desventajas y Variantes[editar]
Se debe usar cuando:
- Un sistema debe ser independiente de cómo se crean, componen y representan sus productos.
- Un sistema debe ser configurado con una familia de productos entre varias.
- Una familia de objetos producto relacionados está diseñada para ser usada conjuntamente y es necesario hacer cumplir esa restricción.
- Se quiere proporcionar una biblioteca de clases de productos y sólo se quiere revelar sus interfaces, no sus implementaciones.
Consecuencias:
- Aísla las clases concretas.
- Facilita el intercambio de familias de productos.
- Promueve la consistencia entre productos.
Desventajas:
- Es difícil dar cabida a nuevos tipos de productos.