Qu’est ce qu’une interface, et quels sont les avantages à l’utiliser dans la Programmation Orientée Objet (POO)
L’idée principale de cet article est de présenter le concept d’interface dans la POO et ses avantages
Qu’est ce qu’une interface ?
Dans la vie de tous les jours, une interface peut être considérée comme une couche mise au dessus d’un système complexe.Prenons l’exemple d’un robot mixeur. Quand nous utilisons un robot mixeur, une fois les fruits mis dans le mixeur, nous appuyons sur un bouton qui démarre le moteur et mixe l’ensemble du contenu. Dans cet exemple le bouton de notre mixeur que nous appuyons représente une interface nous permettant de commander le comportement du moteur. En fait tout l’emballage autour du moteur du mixeur et le bouton du mixeur qui nous permet de l’actionner ou non selon notre gré, peut en fait être considérée comme une interface. Ainsi, une interface peut être défini comme la face visible par l’utilisateur final, lui permettant de communiquer avec un système plus complexe.
Autres exemples: Le volant d’une voiture est une interface permettant de communiquer et de prendre commande de la direction des roues d’une voiture.
L’ensemble des touches et buttons d’un téléphone, est une interface permettant à l’utilisateur du téléphone de communiquer avec le système interne du téléphone (Carte mère, carte son, etc…).
Pour mieux comprendre ce qu’est une interface dans le paradigme de programmation orientée objet nous allons prendre un exemple.
Soit un programmeur A, implémente une librairie A.
Supposons qu’un développeur B, utilise la librairie A, afin de ne plus ré-implémenter à nouveau ce que le programmeur A, a déjà implémenté.
Le programmeur A, va donc exposer une interface applicative permettant au programmeur B, de pouvoir communiquer avec la librairie A, à partir de l’interface.
Derrière chaque interface exposé par la librairie A, existe une implémentation dont le programmeur B, n’a pas besoin de connaitre.
L’ensemble des interfaces exposées par la librairie A, est encore ce qu’on appelle une API (Application Programming Interface).
API ou encore Interface applicative, tout comme le volant d’une voiture est une interface pour communiquer avec les roues, est un ensemble d’interface au sens programmation, permettant à l’utilisateur d’une librairie, d’une application ou d’un framework de pouvoir communiquer avec ceux-ci.
Au sens programmation Java (Java 8 +), une interface est un type de référence contenant:
- des constantes,
- des signatures de méthodes (En fait la signature des méthodes décrivent un contrat c-a-d elle présente les préconditions, postconditions, invariants d’une méthode),
- une éventuelle implémentation par défaut,
- Les type imbriqués comme les énumération.
Avantages
- Accroît la testabilité d’un système;
- Permet la séparation entre un contrat (l’interface) et son implémentation;
- Accroît la maintenabilité du logiciel.
Exemple
Etc…TODO