À retenir
- Sert de pont entre deux interfaces qui ne se comprennent pas nativement.
- Permet de réutiliser du code ancien ou externe sans le modifier.
- Améliore la maintenabilité en isolant les dépendances techniques.
En programmation, un adaptateur est un intermédiaire qui permet à deux éléments de code incompatibles de fonctionner ensemble sans avoir à modifier leur structure interne. On peut l'imaginer comme un adaptateur de prise électrique de voyage qui permet de brancher un appareil français sur une prise américaine : il ne change pas le fonctionnement de l'appareil, il transforme simplement la connexion pour qu'elle s'ajuste au mur.
Étymologie
Dérivé du verbe adapter (du latin adaptare, signifiant « ajuster en vue de ») avec le suffixe -ateur désignant celui qui réalise l'action. Dans l'ingénierie logicielle, ce terme a été popularisé par le concept de « design pattern » (patron de conception) dans les années 1990 pour désigner une solution standard à un problème de compatibilité.
Exemples d'usage
- Utiliser une nouvelle bibliothèque de traitement d'images dans un vieux logiciel qui attendait un format de commande différent.
- Connecter une application de gestion à une base de données moderne alors que le code d'origine a été écrit pour un ancien système.
- Transformer des données reçues en format XML pour qu'elles puissent être lues par un module qui ne comprend que le JSON.
Cas d'usage
Ce concept intervient principalement dans le développement logiciel lors de l'intégration de services tiers (API), lors de la modernisation de vieux systèmes (legacy code) ou pour rendre une application flexible face à de futurs changements technologiques.
Bonnes pratiques
L'adaptateur doit se contenter de traduire les appels d'un format à un autre sans ajouter de logique métier complexe. Il est recommandé de l'utiliser pour isoler votre code principal des outils externes : si l'outil externe change, vous n'aurez qu'à modifier l'adaptateur au lieu de réécrire toute votre application.
Synonymes
Antonymes
Conseil
Si vous débutez, utilisez un adaptateur dès que vous importez une bibliothèque externe dont vous n'êtes pas l'auteur. Cela vous évitera d'être « coincé » avec cet outil si vous décidez d'en changer plus tard.
Questions fréquentes
Quelle est la différence entre un adaptateur et un pont (bridge) ?
L'adaptateur sert à faire fonctionner ensemble des classes déjà existantes mais incompatibles, tandis que le pont est conçu dès le départ pour séparer l'interface de l'implémentation.
Un adaptateur ralentit-il le programme ?
L'impact est généralement négligeable. C'est une couche de code très fine qui se contente de rediriger des appels de fonctions.