Juste pour info : si vous programmez en orienté objet, j'ose espérer que vous usez et abusez du type-hinting (typage des paramètres objet). Dans ce cas vous saurez qu'on peut utiliser l'interface pour typer un paramètre. Tout de suite ça prend un peu plus de sens
Et c'est encore plus intéressant quand on sait que les interfaces peuvent s'hériter.
L'essentiel est posé, il n'y a plus qu'à réaliser des implémentations par poignées entières elles sauront toutes se parler (pardon, se taper) entre elles.Et c'est encore plus intéressant quand on sait que les interfaces peuvent s'hériter.
Code PHP :
<?php
interface Destructible
{
public function getCurrentLife();
public function getMaxLife();
public function loseLife($damages);
public function die();
}
interface Combattant extends Destructible {
public function getDegats();
public function attaque(Destructible $cible);
}
En Java on n'écrit quasiment jamais une classe sans son interface. La convention veut même qu'on écrive d'abord l'interface, puis une implémentation de base avec le suffixe "Impl". On voit bien ici que le type de base est l'interface, pas son implémentation.