¡Esta es una revisión vieja del documento!


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