DevPath · Aprende a programar ESPTEN

Patrones de diseño

Patrón strategy

Patrón strategy

El patrón strategy define una familia de algoritmos intercambiables y permite elegir cuál usar en tiempo de ejecución. En JavaScript, como las funciones son valores, se implementa de forma muy natural guardando funciones en un objeto.

const estrategias = {
  normal: (precio) => precio,
  miembro: (precio) => precio * 0.9,    // 10% descuento
  vip: (precio) => precio * 0.8,        // 20% descuento
};

function calcularPrecio(precio, tipoCliente) {
  const estrategia = estrategias[tipoCliente] || estrategias.normal;
  return estrategia(precio);
}

console.log(calcularPrecio(100, "vip"));    // 80
console.log(calcularPrecio(100, "miembro")); // 90

¿Por qué es útil?

Ejemplos

Strategy para ordenar de distintas formas

const ordenar = {
  asc: (a, b) => a - b,
  desc: (a, b) => b - a,
};
const numeros = [3, 1, 2];
console.log([...numeros].sort(ordenar.asc));
console.log([...numeros].sort(ordenar.desc));
Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
← Singleton y observerVer el módulo →