Open/Closed Principle
PHP 🟡 MidDefinition
Les entites logicielles doivent etre ouvertes a l'extension mais fermees 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 electrique.
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 systeme doit evoluer frequemment : nouveaux types de paiement, nouvelles regles metier.
Anti-pattern
Ajouter des if/elseif a chaque nouvelle fonctionnalite dans une methode existante.