Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

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'' ​''​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 anteriorvemos 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]]