El patrón Fábrica proporciona una interfaz para crear familias de objetos relacionados sin especificar sus clases concretas. Establece una forma de crear objetos sin reglas de instanciación en el objeto que los usa. Las fábricas abstractas declaran operaciones de creación y las fábricas concretas las implementan para crear productos concretos.
1. Magnolia Camila Arbeláez Polindara
Michael Farid Fernández Rivera
PATRONES CREACIONALES:
PATRÓN FÁBRICA
INTENCIÓN Proporciona una interfaz para crear familias de
objetos relacionados o que dependen entre sí, sin
especificar sus clases concretas.
PROBLEMA QUE SOLUCIONA Se necesita instanciar familias de objetos.
SOLUCIÓN PROPUESTA Coordinar la creación de familias de objetos.
Establecer una forma para quitar las reglas de
cómo realizar la instanciación fuera del objeto
que está usando los objetos a crear.
DIAGRAMA DE CLASES
DIAGRAMA DE SECUENCIA
PARTICIPANTES ● Fábrica Abstracta: Declara una interfaz
para operaciones que crean objetos
producto abstractos.
● Fábrica Concreta: Implementa las
operaciones para crear objetos producto
concretos.
● Producto Abstracto: Declara una interfaz
para un tipo de objeto producto.
● Producto Concreto: Define un objeto
2. Magnolia Camila Arbeláez Polindara
Michael Farid Fernández Rivera
producto para que sea creado por la
fábrica correspondiente. Implementa la
interfase Producto Abstracto.
● Cliente: Sólo usa interfaces declaradas
por las clases Fábrica Abstracta y
Producto Abstracto.
APLICABILIDAD ● 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.
● 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.
CONSECUENCIAS ● Desventaja: Es difícil dar cabida a nuevos
tipos de productos.
● Aísla las clases concretas.
● Facilita el intercambio de familias de
productos.
● Promueve la consistencia entre productos.