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:builder [2017/04/28 08:48] user |
cap:patterns:builder [2018/02/20 09:18] (actual) |
||
---|---|---|---|
Línea 7: | Línea 7: | ||
{{ cap:patterns:builder.png }} | {{ cap:patterns:builder.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''. | + | Como podemos ver en la imagen, tenemos un constructor ''Builder'' del cual surgen 2 implementaciones ''BuilderProductForA'' y ''BuilderProductForB'', por otra parte tenemos un director ''Director'' que se encargará de ejecutar el ''Builder'' que le sea especificado, debido a la implementación cada ''Builder'' puede hacer productos y obtener productos, pero cada uno la hará a su modo, en todos los casos el resultado será un producto. |
- | En la fábrica base existe un método llamado ''create'' el cual regresa como resultado un objeto del tipo ''ProductAbstract''. | + | {{ cap:patterns:builder_sample.png }} |
- | La fábrica ''FactoryProductA'' regresa un ''ProductA'', mientras que la fábrica ''FactoryProductB'' regresa un ''ProductB''. | + | En la imagen anterior, vemos que existen 2 Recetas para hacer pizza, una es la receta para pizza hawaiana, la otra es la receta para pizza de peperoni, ambas recetas crearan una pizza, pero cada pizza tendrá ingredientes y modo de preparación distinto. |
- | + | ||
- | {{ cap:patterns:builder_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. | + | Por último el pizero es el encargado de hacer las pizzas en base a la receta que se le especifique. |
[[cap:patterns:codigo yuml]] | [[cap:patterns:codigo yuml]] |