Open/Closed Principle

PHP 🟡 Mid

Definition

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.
#core#interview#solid