Patrón Builder

¿Qué es el Patrón Builder?

El Builder es un patrón de diseño creacional que se utiliza para construir objetos complejos paso a paso. Permite crear diferentes representaciones de un objeto usando el mismo código de construcción.

Código de Ejemplo en JavaScript

            
class House {
  constructor() {
    this.floors = 0;
    this.rooms = 0;
    this.garden = false;
  }

  showDetails() {
    console.log(`House with ${this.floors} floor(s), ${this.rooms} room(s), garden: ${this.garden}`);
  }
}

class HouseBuilder {
  constructor() {
    this.house = new House();
  }

  setFloors(floors) {
    this.house.floors = floors;
    return this;
  }

  setRooms(rooms) {
    this.house.rooms = rooms;
    return this;
  }

  addGarden() {
    this.house.garden = true;
    return this;
  }

  build() {
    return this.house;
  }
}

// Uso del patrón Builder
const builder = new HouseBuilder();

const smallHouse = builder.setFloors(1).setRooms(2).build();
smallHouse.showDetails(); // House with 1 floor(s), 2 room(s), garden: false

const villa = builder.setFloors(2).setRooms(5).addGarden().build();
villa.showDetails(); // House with 2 floor(s), 5 room(s), garden: true

        

Casos de Uso

  • Crear configuraciones personalizadas de objetos complejos.
  • Facilitar la construcción de objetos con múltiples parámetros opcionales.
  • Desarrollar aplicaciones con estructuras anidadas como JSON o XML.

Patrones Relacionados

  • Factory Method: Crea objetos completos, pero Builder los construye paso a paso.
  • Prototype: Clona objetos existentes en lugar de construirlos desde cero.
  • Abstract Factory: Produce familias de objetos relacionados, mientras que Builder se enfoca en un solo objeto complejo.
Whatsapp Mentores Tech