====== Fábrica Abstracta ====== Una fábrica abstracta es aquella fábrica que tiene diferentes implementaciones debido a que existen dentro de su proceso de creación alguna particularidad que diferencia a una fábrica de otra. {{ cap:patterns:abstract_factory.png }} Como podemos ver en la imagen, tenemos un producto base ''ProductAbstract'' del cual surgen 2 implementaciones ''ProductA'' y ''ProductB'', por otra parte tenemos una fábrica base ''FactoryAbstract'' de la cual surgen 2 implementaciones ''FactoryProductA'' y ''FactoryProductB''. En la fábrica base existe un método llamado ''create'' el cual regresa como resultado un objeto del tipo ''ProductAbstract''. La fábrica ''FactoryProductA'' regresa un ''ProductA'', mientras que la fábrica ''FactoryProductB'' regresa un ''ProductB''. {{ cap:patterns:abstract_factory_sample.png }} En la imagen anterior, vemos que existen 2 fábricas, una se encarga de ensamblar camionetas, la otra se encarga de ensamblar sedan, ambas fábricas realizan la misma acción de ensamblar, pero cada fábrica lo hace de una manera distinta y el producto que generan es distinto. [[cap:patterns:codigo yuml]]