Sous-interface

Définition, exemples et bonnes pratiques

À retenir

  • Elle complète une interface parente sans la modifier.
  • Elle définit un contrat plus précis pour l'objet qui l'utilisera.
  • Elle favorise la réutilisation et l'organisation logique du code.

Une sous-interface est une extension d'une interface existante qui en récupère toutes les règles tout en y ajoutant ses propres exigences. On peut l'imaginer comme un contrat spécialisé : si l'interface de base définit ce qu'est un « Véhicule », la sous-interface pourra définir ce qu'est un « VéhiculeÉlectrique », en conservant les bases (avancer, freiner) mais en ajoutant des obligations spécifiques (recharger la batterie).

Étymologie

Le terme est composé du préfixe sous- (indiquant une hiérarchie ou une dépendance) et du mot interface (de l'anglais interface, signifiant une zone de contact ou d'échange). En programmation, cela reflète la hiérarchie de l'héritage entre types de données.

Exemples d'usage

  • En langage Java, l'interface List est une sous-interface de Collection : elle possède toutes les capacités de stockage, mais ajoute des règles sur l'ordre des éléments.
  • Une interface Smartphone qui hérite d'une interface Telephone pour y ajouter des fonctions tactiles.

Cas d'usage

Ce concept intervient principalement dans la conception de logiciels complexes (POO - Programmation Orientée Objet). Il permet de structurer les fonctionnalités de manière logique, en partant du plus général vers le plus précis, sans pour autant écrire le code de réalisation (l'implémentation).

Bonnes pratiques

Évitez de créer des hiérarchies trop profondes (plus de 2 ou 3 niveaux) car cela complexifie inutilement la compréhension du code. Appliquez le principe de ségrégation des interfaces : préférez plusieurs sous-interfaces spécialisées à une seule interface massive qui obligerait les développeurs à coder des fonctions inutiles.

Synonymes

interface dérivée interface étendue interface enfant

Antonymes

super-interface interface parente interface de base

Conseil

Si vous débutez, utilisez les sous-interfaces pour « spécialiser » vos outils. Si vous avez une interface pour gérer des fichiers, créez une sous-interface pour les fichiers compressés : elle fera tout ce qu'un fichier normal fait, avec le dézippage en plus.

Questions fréquentes

Une sous-interface peut-elle hériter de plusieurs parents ?

Oui, dans de nombreux langages comme Java, une interface peut étendre plusieurs autres interfaces, contrairement aux classes.

Est-ce que la sous-interface contient du code ?

Généralement non. Comme toute interface, elle liste des méthodes (capacités) mais ne définit pas comment elles fonctionnent concrètement.