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.