Interface

PHP 🟢 Junior

Définition

Contrat qui définit les méthodes qu'une classe doit implémenter, sans fournir d'implémentation. Permet le polymorphisme et le decouplage.

Analogie

Comme une prise électrique standard : tout appareil qui respecte le format peut se brancher.

Exemple de code

interface PaymentGateway {
  public function charge(float $amount): bool;
  public function refund(string $txId): bool;
}

class StripeGateway implements PaymentGateway {
  public function charge(float $amount): bool { /* ... */ }
  public function refund(string $txId): bool { /* ... */ }
}

Cas d'usage

Pour définir des contrats entre composants et permettre de changer d'implémentation sans modifier le code appelant.

Anti-pattern

Créer des interfaces avec une seule implémentation sans raison de decouplage.
#core#interview#oop#solid

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