Composition over Inheritance

PHP 🟡 Mid

Définition

Principe de design qui favorise l'assemblage d'objets (a un) plutôt que l'héritage (est un) pour la réutilisation de code. Produit des architectures plus flexibles.

Analogie

Comme des briques LEGO : on assemble des pièces pour construire ce qu'on veut, plutôt que d'hériter d'un modèle fixe.

Exemple de code

class OrderService {
  public function __construct(
    private PaymentGateway $payment,
    private Mailer $mailer,
    private Logger $logger,
  ) {}
}

Cas d'usage

Dans la majorité des cas ou on est tente d'hériter pour réutiliser du code.

Anti-pattern

Créer des hiérarchies d'héritage profondes de 4+ niveaux pour partager du comportement.
#core#interview#oop#solid

← → au clavier pour passer d'une fiche à l'autre