Strategy
Architecture 🟢 JuniorDefinition
Definit une famille d'algorithmes interchangeables encapsules separement. Le client choisit l'algorithme a utiliser au runtime.
Analogie
Choisir son moyen de transport : velo, bus ou voiture — la destination est la meme, la strategie change.
Exemple de code
const strategies = {
credit: (amount) => chargeCard(amount),
paypal: (amount) => paypalCheckout(amount),
};
const pay = strategies[method];
Cas d'usage
Algorithmes de tri, strategies de paiement, politiques de retry configurables.
Anti-pattern
if/else ou switch sur le type d'algorithme eparpilles dans tout le code.