Qu’est ce qu’une Interface

Cette article à pour but de venir soutenir un futur article en rappelant les bases de la programmation objet.

Un jour un développer, développant depuis des années m’a dit « Il n’y a que la fine fleur des développeurs qui utilisent les interfaces, nous on a pas besoin de ça » Autant dire que je ne suis pas d’accord même si ça m’a pris longtemps pour vraiment comprendre le sujet.

D’après Wikipedia « Il s’agit de l’ensemble des méthodes accessibles depuis l’extérieur de la classe, par lesquelles on peut modifier l’objet. » et c’est cela, il faut voire l’interface comme un contrat.

Quand on écrit un interface on écrit un contrat, quant on implémente celle-ci on fait « signer le contrat » à notre objet qui l’implémente, de cette façon l’on est certain que notre objet respecte les clauses de notre contrat.

Pour l’exemple imaginons des utilisateurs, qui pour se connecter ont besoin d’un identifiant est d’un mot de passe, je devrais écrire le contrat « ConnectableInterface » et lui assigner deux methodes publiques « getLogin » et « getPassword« . De cette façon  je sais que n’importe quel objet implémentant « ConnectableInterface » peut se connecter à mon application.