Patrón de Diseño Abstract Factory - tectijuana/javapdd16a-Archived GitHub Wiki
Patron de Diseño Abstract Factory
El patrón Abstract Factory nos permite crear, mediante una interfaz, conjuntos o familias de objetos (denominados productos) que dependen mutuamuente y todo esto sin especificar cual es el objeto concreto.
Este patrón se puede aplicar cuando:
-
Un sistema debe ser independiente de como sus objetos son creados.
-
Un sistema debe ser 'configurado' con una cierta familia de productos.
-
Se necesita reforzar la noción de dependencia mutua entre ciertos objetos.
Estructura
El asterisco (*) representa que la clase/operación es abstracta.
Elementos del Patrón Abstract Factory
-
**FabricaAbstracta*:** Define un conjunto de métodos (interfaz) para la creación de productos abstractos.
-
**FabricaConcreta1/2:** Implementa la interfaz de la FabricaAbstracta para la creación de los distintos productos concretos.
-
**ProductoAbstractoA*/B*:** Define la interfaz de los objetos de tipo ProductoA/B.
-
**ProductoConcretoA1/A2/B1/B2:** Implementan su respectiva interfaz representando un producto concreto.
Pros/Contras del Patrón Abstract Factory
-
+ Brinda flexibilidad al aislar a las clases concretas.
-
+ Facilita cambiar las familias de productos.
-
- Para agregar nuevos productos se deben modificar tanto las fabricas abstractas como las concretas.