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]