ABSTRACT FACTORY
• Proporciona una interfaz para crear
familias de objetos relacionados ó que
dependen entre sí, sin especificar sus
clases concretas
DISEÑO DE SISTEMAS
ABSTRACT FACTORY: ESTRUCTURA
AbstractFactory Client
CreateProductA()
AbstractProductA
CreateProductB()
ProductA2 ProductA1
ConcreteFactory1 ConcreteFactory2
AbstractProductB
CreateProductA() CreateProductA()
CreateProductB() CreateProductB()
ProductB2 ProductB1
DISEÑO DE SISTEMAS
ABSTRACT FACTORY: ESTRUCTURA
AbstractFactory
declara una interfaz para las operaciones que crean productos abstractos
ConcreteFactory
implementa las operaciones para crear objetos de productos concretos
AbstractProduct
declara una interfaz para un tipo de producto objeto
Producto
define un objeto producto a ser creado por la fábrica correspondiente
implementa la interfaz AbstractProduct
Client
utiliza las interfaces declaradas por clases AbstractFactory y AbstractProduct
DISEÑO DE SISTEMAS
ABSTRACT FACTORY
Ejemplo.
Construir una aplicación para construir coches mediante el
ensamblado de sus partes (motor, chasis, etc.)
Los componentes de un coche deben tener la misma marca del
coche
Hay múltiples marcas
Es responsabilidad del cliente ensamblar las piezas
DISEÑO DE SISTEMAS
ABSTRACT FACTORY
DISEÑO DE SISTEMAS
ABSTRACT FACTORY
DISEÑO DE SISTEMAS
ABSTRACT FACTORY: OTRO EJEMPLO
DISEÑO DE SISTEMAS