Strategy Pattern
PHP 🟡 MidDefinition
Pattern qui definit une famille d'algorithmes interchangeables. Le client choisit la strategie a utiliser a l'execution sans modifier le code consommateur.
Analogie
Comme choisir son moyen de transport : bus, velo ou taxi, la destination reste la meme.
Exemple de code
interface ShippingStrategy {
public function calculate(Order $order): float;
}
class ExpressShipping implements ShippingStrategy { }
class StandardShipping implements ShippingStrategy { }
$order->setShipping(new ExpressShipping());
Cas d'usage
Quand un comportement peut varier selon le contexte : calcul de prix, tri, notification.
Anti-pattern
Utiliser des switch/case ou des if/else pour choisir l'algorithme inline.