Composition over Inheritance

PHP 🟡 Mid

Definition

Principe de design qui favorise l'assemblage d'objets (a un) plutot que l'heritage (est un) pour la reutilisation de code. Produit des architectures plus flexibles.

Analogie

Comme des briques LEGO : on assemble des pieces pour construire ce qu'on veut, plutot que d'heriter d'un modele fixe.

Exemple de code

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

Cas d'usage

Dans la majorite des cas ou on est tente d'heriter pour reutiliser du code.

Anti-pattern

Creer des hierarchies d'heritage profondes de 4+ niveaux pour partager du comportement.

Termes lies

#core#interview#oop#solid