====== 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]