====== Constructor ====== Un constructor se dedica a crear productos específicos, pero el constructor es usado por una entidad llamada director, por lo tanto podemos decir que, un director recibe un constructor y que este constructor crea productos específicos. Mencionado lo anterior tenemos un constructor el cual tiene diferentes implementaciones pero cada implementación generara un mismo producto pero con características especificas, un director puede utilizar cualquiera de las implementaciones del constructor para obtener el producto con sus características específicas. {{ cap:patterns:builder.png }} 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. {{ cap:patterns:builder_sample.png }} 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. Por último el pizero es el encargado de hacer las pizzas en base a la receta que se le especifique. [[cap:patterns:codigo yuml]]