Open/Closed Principle
PHP 🟡 MidDéfinition
Les entités logicielles doivent être ouvertes a l'extension mais fermées a la modification. On ajoute du comportement sans toucher au code existant.
Analogie
Comme une multiprise : on peut brancher de nouveaux appareils sans modifier l'installation électrique.
Exemple de code
interface Discount {
public function calculate(float $price): float;
}
class StudentDiscount implements Discount {
public function calculate(float $price): float {
return $price * 0.8;
}
}
// Ajout sans modifier le code existant
Cas d'usage
Quand un système doit évoluer fréquemment : nouveaux types de paiement, nouvelles règles métier.
Anti-pattern
Ajouter des if/elseif a chaque nouvelle fonctionnalité dans une méthode existante.