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.
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 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.