Strategy
Architecture 🟢 JuniorDéfinition
Définit une famille d'algorithmes interchangeables encapsulés séparément. Le client choisit l'algorithme a utiliser au runtime.
Analogie
Choisir son moyen de transport : vélo, bus ou voiture — la destination est la même, la stratégie change.
Exemple de code
const strategies = {
credit: (amount) => chargeCard(amount),
paypal: (amount) => paypalCheckout(amount),
};
const pay = strategies[method];
Cas d'usage
Algorithmes de tri, stratégies de paiement, politiques de retry configurables.
Anti-pattern
if/else ou switch sur le type d'algorithme éparpillés dans tout le code.