Patrón Builder

PUBLICADO: 2026-07-21
AUTOR: MANUEL PRIETO
Patrones de Diseño

Builder es un patrón de diseño creacional que permite construir objetos complejos paso a paso. A diferencia de otros patrones creacionales como el Patrón Singleton o el Patrón Factory Method, Builder no requiere que todos los productos tengan la misma interfaz.

💡 Ver Caso Práctico: Ejemplo Práctico del Patrón Builder

Propósito y Caso de Uso

Utiliza el patrón Builder cuando necesites construir objetos con muchos parámetros opcionales, evitar el antipatrón de Telescoping ConstructorGlosarioTelescoping Constructor (Constructor Telescópico)Antipatrón de diseño en POO que ocurre cuando una clase define múltiples constructores sobrecargados con listas de parámetros progresivamente más largas para manejar argumentos opcionales. Produce código rígido, difícil de mantener y propenso a errores al invocar.Ver término completo → y aplicar principios de diseño limpios como SOLIDGlosarioSOLIDAcrónimo de cinco principios de diseño orientado a objetos y programación diseñados para hacer que el software sea más comprensible, flexible y mantenible: S - Single Responsibility Principle (Responsabilidad Única) O - Open/Closed Principle (Abierto/Cerrado) L - Liskov Substitution Principle (Sustitución de Liskov) I - Interface Segregation Principle (Segregación de Interfaz) D - Dependency Inversion Principle (Inversión de Dependencias) Ver término completo → y KISSGlosarioKISS (Keep It Simple, Stupid)Principio de diseño que establece que la mayoría de los sistemas funcionan mejor si se mantienen simples en lugar de hacerlos complejos. Se debe evitar la complejidad innecesaria en la arquitectura y el código.Ver término completo →.

Estructura del Patrón

  1. Builder (Interfaz): Declara los pasos de construcción de productos comunes a todos los tipos de creadores.
  2. Builder Concreto: Ofrece distintas implementaciones de los pasos de construcción y ensambla el producto final.
  3. Producto: El objeto complejo resultante creado.
  4. Director (Opcional): Define el orden en el que se deben llamar a los pasos de construcción para reutilizar configuraciones específicas.
Cargando diagrama...

Flujo de Funcionamiento

  1. Invocación: El cliente crea una instancia del Builder o llama al Director.
  2. Encadenamiento (Fluent Interface): Se ejecutan secuencialmente los métodos de configuración que devuelven this.
  3. Construcción: El método build() valida los campos obligatorios y retorna el objeto complejo final configurado.

Ejemplos de Implementación Reales