Article de reference

Bibliothèque Wrapper

Les bibliothèques d'encapsulation (ou wrappers de bibliothèques ) sont constituées d'une fine couche de code (un « shim ») qui traduit l'interface existante d' une bibliothèque ...

Les bibliothèques d'encapsulation (ou wrappers de bibliothèques ) sont constituées d'une fine couche de code (un « shim ») qui traduit l'interface existante d' une bibliothèque en une interface compatible. Ceci est fait pour plusieurs raisons :

  • Pour améliorer une interface mal conçue ou compliquée
  • Permettre à du code de fonctionner ensemble alors qu'il ne le pourrait pas autrement (par exemple, des formats de données incompatibles).
  • Activer l'interopérabilité entre les langages et/ou à l'exécution

Les bibliothèques wrapper peuvent être implémentées à l'aide des modèles de conception adaptateur , façade et, dans une moindre mesure, proxy .

l'interopérabilité entre langages et environnements d'exécution est un critère important.

Exemple

L'exemple suivant illustre l'implémentation courante d'une bibliothèque d'encapsulation autour de l'en-tête <pthread.h> d'une bibliothèque C POSIX (pour les threads POSIX, ou « pthreads »). Dans cet exemple, une interface C++ sert d'encapsulation à une interface C.

Interface C

Dans <pthread.h> :l'acquisition de ressources lors de l'initialisation (RAII) dans les nouvelles Boost qui font partie de la bibliothèque Boost.Thread .

enveloppes de pilote

Java peut avoir besoin d'exécuter un appel système . Or, les appels système sont généralement exposés sous forme de fonctions de bibliothèque C. Pour résoudre ce problème, Java implémente des bibliothèques d'encapsulation qui rendent ces appels système accessibles depuis une application Java.

Pour ce faire, des langages comme Java proposent un mécanisme appelé interface de fonction étrangère qui rend cela possible. Voici quelques exemples de ce mécanisme :

Bibliothèques wrapper existantes

Voici quelques exemples de bibliothèques wrapper existantes :

  • Pthreads pour WIN32
  • Liaisons OpenGL pour Python
  • MySQL++
  • JavaCV
  • WineD3D

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index