Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
cap:patterns:abstract_factory [2017/04/27 16:07] user |
cap:patterns:abstract_factory [2018/02/20 09:18] (actual) |
||
---|---|---|---|
Línea 3: | Línea 3: | ||
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. | 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. | ||
- | <classdiagram> | + | {{ cap:patterns:abstract_factory.png }} |
- | [AbstractFactory||create():ProductAbstract]->[FactoryA] | + | |
- | [AbstractFactory]->[FactoryB] | + | 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''. |
- | [AbstractFactory]<-.-[ProductAbstract] | + | |
- | [ProductAbstract]->[ProductA] | + | En la fábrica base existe un método llamado ''create'' el cual regresa como resultado un objeto del tipo ''ProductAbstract''. |
- | [ProductAbstract]->[ProductB] | + | |
- | [FactoryA]<-.-[ProductA] | + | La fábrica ''FactoryProductA'' regresa un ''ProductA'', mientras que la fábrica ''FactoryProductB'' regresa un ''ProductB''. |
- | [FactoryB]<-.-[ProductB] | + | |
- | </classdiagram> | + | {{ 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]] |