Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
cap:patterns:abstract_factory [2017/04/26 17:50] user creado |
cap:patterns:abstract_factory [2018/02/20 09:18] (actual) |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
====== Fábrica Abstracta ====== | ====== Fábrica Abstracta ====== | ||
- | Consiste en generar una implementación de una fábrica la cual resolverá las acciones bajo el contexto en que se realizó la implementación, es decir, se requiere resolver el mismo conjunto de acciones pero el contexto en donde se realizan puede variar en base a las condiciones donde se realizó la implementación, al final se van a resolver las acciones pero el resultado será diferente dependiendo de que implementación de fábrica sea la que las resuelva. | + | 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]] |