Los patrones de diseño esta divididos en tres categorías: creación, estructural y de comportamiento.
El patrón builder es un patrón de la categoría de «creación». Este patrón es el encargado de separar la construcción de un objeto de su representación, de manera que este proceso pueda generar diferentes representaciones.
ESCENARIO
Vamos a intentar imaginarnos una situación donde múltiples objetos complejos de crear, necesitan ser gestionados por un objeto independiente, donde el cliente no tenga la necesidad de saber cómo crear estos objetos.
Nos podemos imaginar una aplicación, de venta de ordenadores, donde el cliente pide un portátil o un sobremesa, no obstante, debería ser fácil añadir una nuevo tipo de dispositivo, por ejemplo tablet.
CUANDO USARLO
- Lo podemos usar, cuando la creación del objeto debe ser independiente de todas sus partes y de como se forman
- .El proceso de creación, puede generar diferentes representaciones del objeto.
ESTRUCTURA
ACTORES
- Builder: Especifica una interfaz para crear las partes del «device«
- Concrete Builder: Implementa la interfaz builder
- Director: Construye objetos utilizando la interfaz builder
- Device: Representa el objeto con la construcción compleja
VENTAJAS E INCONVENIENTES
Reutilización del constructor para generar distintos tipos de productor, sigue el principio de SRP.
Un desventaja podría ser la generación excesiva de clases para cada nuevo producto/builder.
IMPLEMENTACIÓN