Fonction wrapper - Wrapper function

Une fonction wrapper est un sous - programme (un autre mot pour une fonction ) dans une bibliothèque de logiciels ou un programme informatique dont le but principal est d'appeler un deuxième sous-programme ou un appel système avec peu ou pas de calcul supplémentaire. Les fonctions wrapper sont utilisées pour faciliter l'écriture de programmes informatiques en faisant abstraction des détails de l'implémentation sous-jacente d'un sous-programme.

Objectif

Les fonctions wrapper sont un moyen de délégation et peuvent être utilisées à diverses fins.

Programmation pratique

Les fonctions de wrapper peuvent être utilisées pour faciliter l'écriture de programmes informatiques. Un exemple de ceci est les MouseAdapter classes et similaires dans la bibliothèque Java AWT . Les fonctions wrapper sont utiles dans le développement d'applications utilisant des fonctions de bibliothèque tierces. Un wrapper peut être écrit pour chacune des fonctions tierces et utilisé dans l'application native. Dans le cas où les fonctions tierces changent ou sont mises à jour, seuls les wrappers de l'application native doivent être modifiés au lieu de changer toutes les instances de fonctions tierces dans l'application native.

Adaptation des interfaces classe / objet

Les fonctions wrapper peuvent être utilisées pour adapter une classe ou un objet existant à une interface différente. Ceci est particulièrement utile lors de l'utilisation du code de bibliothèque existant.

Test de code

Les fonctions wrapper peuvent être utilisées pour écrire des routines de vérification d'erreurs pour des fonctions système préexistantes sans augmenter la longueur d'un code par une grande quantité en répétant le même contrôle d'erreur pour chaque appel à la fonction. Tous les appels à la fonction d'origine peuvent être remplacés par des appels au wrapper, permettant au programmeur d'oublier la vérification des erreurs une fois que le wrapper est écrit. Un pilote de test est une sorte de fonction wrapper qui exerce un module de code, en l'appelant généralement à plusieurs reprises, avec différents paramètres ou paramètres, afin de poursuivre rigoureusement chaque chemin possible. Ce n'est pas du code livrable, mais ce n'est pas non plus du code jetable, généralement conservé pour une utilisation dans les tests de régression . Un adaptateur d'interface est une sorte de fonction wrapper qui simplifie, adapte ou amplifie l'interface à un module de code, dans le but de la rendre plus intelligible ou pertinente pour l'utilisateur. Il peut renommer des paramètres, combiner des paramètres, définir des valeurs par défaut pour les paramètres, etc.

Héritage multiple

Dans un langage de programmation qui ne prend pas en charge l' héritage multiple de classes de base, les fonctions wrapper peuvent être utilisées pour le simuler. Voici un exemple d'une partie d'une classe Java qui "hérite" de LinkedList et HashSet. Voir Méthode pour plus de détails sur l'implémentation.

public class Test implements LinkedList, HashSet{

@Override
//contains data members and data methods
//covariant return

}

Fonctions de la bibliothèque et appels système

De nombreuses fonctions de bibliothèque , telles que celles de la bibliothèque standard C , agissent comme des interfaces pour l' abstraction des appels système . Les fonctions fork et execve de la glibc en sont des exemples. Ils appellent respectivement la fourche de niveau inférieur et exécutent des appels système.

Cela peut conduire à une utilisation incorrecte des termes «appel système» et «appel système» pour désigner les appels de bibliothèque de niveau supérieur plutôt que les appels système de nom similaire, qu'ils encapsulent.

Voir également

Les références