Qu'est-ce qu'une classe wrapper ?
En quoi ces cours sont-ils utiles ?
Réponses
Trop de publicités?En général, une classe wrapper est une classe qui "enveloppe" ou "encapsule" la fonctionnalité d'une autre classe ou d'un composant. Elles sont utiles en fournissant un niveau d'abstraction par rapport à l'implémentation de la classe ou du composant sous-jacent ; par exemple, les classes enveloppes qui enveloppent les composants COM peuvent gérer le processus d'invocation du composant COM sans ennuyer le code appelant avec celui-ci. Elles peuvent également simplifier l'utilisation de l'objet sous-jacent en réduisant le nombre de points d'interface impliqués ; souvent, cela permet une utilisation plus sûre des composants sous-jacents.
C'est exactement ce que cela signifie : une classe qui "enveloppe" la fonctionnalité d'une autre classe ou API dans une API plus simple ou simplement différente.
Voir : Modèle d'adaptateur , Motif de la façade
Les classes enveloppantes permettent d'utiliser les types primitifs comme des objets. Pour chaque primitive, nous disposons d'une classe d'encapsulation, par exemple pour
int Integer
byte Byte
Integer et Byte sont les classes d'enveloppe des primitives int et byte. Il y a des moments/restrictions où vous devez utiliser les primitives en tant qu'objets. Les classes d'enveloppe fournissent donc un mécanisme appelé boxing/unboxing.
Le concept peut être bien compris par l'exemple suivant comme
double d = 135.0 d;`
Double doubleWrapper = new Double(d);
int integerValue = doubleWrapper.intValue();
byte byteValue = doubleWrapper.byteValue();
sting stringValue = doubleWrapper.stringValue();
C'est ainsi que nous pouvons utiliser le type de classe wrapper pour convertir d'autres types primitifs. Ce type de conversion est utilisé lorsque vous avez besoin de convertir un type primitif en objet et de les utiliser pour obtenir d'autres primitives. Toutefois, la même chose peut être réalisée avec la technique de casting simple comme extrait de code peut être réalisé comme ci-dessous
double d = 135.0;
int integerValue = (int) d ;
Bien que la valeur double soit explicitement convertie en valeur entière, on parle aussi de downcasting.
Une classe wrapper n'a pas nécessairement besoin d'envelopper une autre classe. Il peut s'agir d'une classe API enveloppant une fonctionnalité dans un fichier dll, par exemple.
Par exemple, il peut s'avérer très utile de créer une classe wrapper dll, qui s'occupe de toute l'initialisation et du nettoyage de la dll, et de créer des méthodes de classe qui enveloppent les pointeurs de fonction créés à partir de GetProcAddress(), par exemple.
A la vôtre !
Une classe enveloppante est une classe qui "enveloppe" quelque chose d'autre, comme son nom l'indique.
La définition la plus formelle serait une classe qui implémente la fonction Modèle d'adaptateur . Cela vous permet de modifier un ensemble d'API en une forme plus utilisable et plus lisible. Par exemple, en C#, si vous souhaitez utiliser l'API Windows native, il est utile de l'intégrer dans une classe conforme aux directives de conception de .NET.