Où et comment le terme WRAPPER est-il utilisé dans la programmation, qu’est-ce que cela aide à faire?

Je rencontre des développeurs de logiciels utilisant le terme de création de Wrappers d’autres classes ou API ou même de certains codes. C’est un terme utilisé par les programmeurs expérimentés.

Donc, toute idée de ce qu’ils entendent par là;

par exemple une simple question; nous avons deux types de techniques de sorting de tableaux, créons un wrapper pour cela

Le ci-dessus est un exemple très simple

Le terme «wrapper» est souvent utilisé. En général, il est utilisé pour décrire une classe qui contient une instance d’une autre classe, mais qui n’expose pas directement cette instance. L’objective principal de l’encapsuleur est de fournir un moyen «différent» d’utiliser un object encapsulé (peut-être que l’encapsuleur fournit une interface plus simple ou ajoute des fonctionnalités).

Le mot «wrapper» peut également être utilisé pour décrire des motifs de conception classiques.

L’emballage d’un object pour lui donner une interface simplifiée est souvent décrit comme étant le motif de «façade». Le wrapper est la façade.

Parfois, vous pouvez avoir une classe qui conviendrait à une interface spécifique, mais vous ne pouvez pas modifier le code pour le rendre conforme à cette interface. Vous pouvez créer un wrapper pour cette classe qui implémente l’interface, mais qui dirige la plupart des appels vers l’object encapsulé. Ceci est le modèle “Adaptateur”. Le wrapper est l’adaptateur.

L’instance que vous décrivez, où vous avez deux classes capables d’effectuer un sorting de tableaux en utilisant différents algorithmes, ressemble au modèle «Stratégie», où vous pouvez effectuer une opération sur un object, mais l’algorithme utilisé pour cette opération peut être différent. sur la structure de cet object.

Par exemple, l’un de vos algorithmes de sorting peut être excellent pour les tableaux de longueur inférieure à 100, mais les performances risquent alors de poser problème. L’autre algorithme pourrait être bon pour les tableaux plus grands. Vous pouvez créer un «wrapper» pour les deux algorithmes qui prennent en charge l’opération de sorting, mais décide de l’algorithme à utiliser en fonction de la longueur du tableau.

La grande majorité des wrappers existent pour cacher une sorte de complexité.

Explication par Analogie

Qu’est-ce que l’emballage? Exemple 1: Ipad enveloppe un Iphone.

Que fait l’ipad que l’iphone ne fait pas? Ne sont-ils pas fondamentalement la même chose, sauf qu’on a un écran plus grand? L’Ipad “enveloppe” l’iphone: ce qui signifie que vous avez tous les avantages de l’iphone dans l’ipad lui-même, et que vous bénéficiez d’un écran plus grand, etc.

Un iphone est la seule chose à l'intérieur d'un iPad. L'Ipad enveloppe littéralement l'Iphone. Sauf que vous ne pouvez pas passer d'appels avec un iPad parce que la possibilité de passer des appels téléphoniques n'a pas été

C’est littéralement la même chose avec les “objects”.

…………. l’intérieur a toutes les bonnes choses qui sont les mêmes, mais un extérieur différent. Un emballage différent.

“Les enveloppes peuvent exposer des caractéristiques différentes de celles de l’object sous-jacent” (Explication simple de ce que cela signifie ci-dessous):

Parfois, le wrapper peut limiter les choses auxquelles vous pouvez accéder à l’intérieur. Par exemple, l’ipad peut limiter votre capacité à faire des appels téléphoniques, même si l’iPhone est enterré en son sein.

Qu’est-ce que l’emballage: Exemple 2: Voiture automatique agissant comme une enveloppe pour une voiture manuelle

Pensez à une voiture automatique et une voiture manuelle. Dans les coulisses, dans une voiture automatique, il y a un mécanisme d’ingénierie qui change automatiquement les vitesses pour vous, mais fondamentalement, sous la surface, la voiture est toujours une voiture manuelle. En d’autres termes, les fonctions automatiques de la voiture «enveloppent» la fonctionnalité manuelle de la voiture. Si vous souhaitez modifier manuellement les vitesses par vous-même dans une voiture automatique, vous ne pouvez tout simplement pas le faire. La possibilité de changer de vitesse “n’est pas exposée” dans la voiture automatique. Mais il est exposé dans une voiture manuelle. Certes, l’analogie est un peu tendue, mais j’espère que vous voyez ce que je veux dire.

C’est juste que vous écrivez un code facile à utiliser pour cacher les complexités du code ci-dessous. C’est particulièrement utile lorsque vous devez appeler une API de bas niveau à partir d’un langage de niveau supérieur et que vous souhaitez masquer tout le code “laid”.

Edit: Vous pouvez trouver plus d’informations à ce sujet dans ces deux articles wiki: bibliothèque et fonction

Un wrapper est un code créé pour appeler en interne certaines API sans modifier l’API réelle.

Un exemple de ceci est la publication de Facebook de leur SDK Facebook C # . Le SDK est en réalité un wrapper, car il vous permet uniquement d’appeler sa plate-forme sous-jacente sans vous donner de méthodes et de classes spécifiques. D’autre part, Facebook Developer Toolkit est son API complète.

Il existe de nombreux exemples de “wrappers” et le terme est parfois utilisé indifféremment. Voici quelques exemples qui viennent à l’esprit:

DLL Wrapper

Dans le passé, j’ai créé un wrapper COM autour d’une DLL .NET afin d’utiliser les fonctionnalités avancées de .NET dans les anciennes applications qui comprennent COM mais ne comprennent pas .NET.

Emballage d’object (Java)

En Java, une classe est fournie dans le package java.lang pour fournir des méthodes d’object pour les huit types primitifs. Toutes les classes d’encapsulation primitives de Java sont immuables. Les classes Wrapper sont donc utilisées pour représenter des valeurs primitives lorsqu’un Object est requirejs.

Fonction wrapper, une fonction dont le but principal est d’appeler une deuxième fonction

Supposons que vous souhaitiez append plus de fonctionnalités à votre code, mais que vous ne pouvez pas modifier le code. C’est là que le wrapper aide. Vous pouvez utiliser un wrapper pour obtenir la sortie sans modifier le code d’origine.