DevPath · Aprenda a programar ESPTEN

Padrões de projeto

Padrão strategy

Padrão strategy

O padrão strategy define uma família de algoritmos intercambiáveis e permite escolher qual usar em tempo de execução. Em JavaScript, como as funções são valores, ele é implementado de forma muito natural guardando funções em um objeto.

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

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 que é útil?

Exemplos

Strategy para ordenar de formas diferentes

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));
Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
← Singleton e observerVer o módulo →