Tabla de Contenidos

Código YUML

Fábrica Abstracta

[FactoryAbstract||create():ProductAbstract]-->[FactoryProductA]
[FactoryAbstract]-->[FactoryProductB]
[ProductAbstract]-.->[FactoryAbstract]
[ProductAbstract]-->[ProductA]
[ProductAbstract]-->[ProductB]
[ProductA]-.->[FactoryProductA]
[ProductB]-.->[FactoryProductB]

Ejemplo

[FabricaAutomovil||Ensamblar():Automovil]-->[FabricaSedan]
[FabricaAutomovil]-->[FabricaCamioneta]
[Automovil]-.->[FabricaAutomovil]
[Automovil]-->[Sedan]
[Automovil]-->[Camioneta]
[Sedan]-.->[FabricaSedan]
[Camioneta]-.->[FabricaCamioneta]

Constructor

[Builder||buildProduct();getProduct():Product]->[BuilderProductForA]
[Builder]->[BuilderProductForB]
[BuilderProductForA]-.->[Product]
[Product]<-.-[Builder]
[BuilderProductForB]-.->[Product]
[Director|builder:Builder|construct()]<>->[Builder]

Ejemplo

[Recetario||hacerPizza();obtenerPizza():Pizza]->[RecetaPizzaPeperoni]
[Recetario]->[RecetaPizzaHawaiana]
[RecetaPizzaPeperoni]-.->[Pizza]
[Pizza]<-.-[Recetario]
[RecetaPizzaHawaiana]-.->[Pizza]
[Pizero|recetario:Recetario|construct()]<>->[Recetario]