Polymorphisme

PHP 🟡 Mid

Définition

Capacité d'objets de types différents a répondre au même message (méthode). Permet de traiter des objets différents de manière uniforme via une interface commune.

Analogie

Comme la touche Play : que ce soit Spotify, YouTube ou un CD, le résultat est de la musique.

Exemple de code

interface Notifier {
  public function send(string $msg): void;
}
class EmailNotifier implements Notifier { /* ... */ }
class SmsNotifier implements Notifier { /* ... */ }

function notify(Notifier $n, string $msg): void {
  $n->send($msg); // fonctionne pour tout Notifier
}

Cas d'usage

Pour écrire du code générique qui fonctionne avec n'importe quelle implémentation d'une interface.

Anti-pattern

Utiliser instanceof et des if/else en cascade au lieu de laisser le polymorphisme agir.
#core#interview#oop

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