Je m'initie à la programmation orientée objet (POO) et j'aimerais savoir ce que signifie la sérialisation dans le jargon de la POO.
Réponses
Trop de publicités?En clair Sérialisation est un processus qui consiste à convertir un objet en un flux d'octets afin de pouvoir le transférer sur un réseau ou le stocker dans une mémoire permanente.
La désérialisation est l'exact opposé : récupérer un flux d'octets à partir du réseau ou du stockage de la persistance et le reconvertir en objet. avec le même état .
Ce qu'il faut comprendre, c'est comment ces flux d'octets sont interprétés ou manipulés pour que nous obtenions exactement le même objet/le même état. Il existe plusieurs façons d'y parvenir. En voici quelques-unes
- XML : Convertir un objet en XML, le transférer sur un réseau ou le stocker dans un fichier/bd. Récupérez-le et reconvertissez-le en objet avec le même état. En Java, nous utilisons JAXB (Java architecture for XML binding) (à partir de Java 6, elle est fournie avec le JDK).
- JSON : Il est possible de faire de même en convertissant l'Objet en JSON (notation JavaScript Object). Là encore, il existe une bibliothèque GSON qui peut être utilisée pour cela.
- Ou nous pouvons utiliser la sérialisation qui est fournie par le langage OOP lui-même. Par exemple, en Java, vous pouvez sérialiser un objet en lui faisant implémenter la méthode suivante
Serializable interface
et écrire dans le flux d'objets.
Qu'est-ce que la sérialisation ?
Explication simple par l'image :
Résumé :
La sérialisation consiste à transformer quelque chose (par exemple mon chien Rex) en une série de 1 et de 0 - qui peuvent être transportés sur la ligne téléphonique, stockés en mémoire. Mes amis à l'étranger peuvent ensuite retranscrire ces 1 et 0 en une représentation parfaite d'un chiot (dé-sérialisation) afin de pouvoir profiter de la compagnie de Rex.
Clarification de l'analogie
Mes amis, ceci est une analogie. Je ne pense pas que vous puissiez réellement sérialiser un chiot LOL . Vous sérialisez une structure de données, ou tout autre objet complexe. (J'ai écrit cette réponse pour que vous puissiez comprendre le concept, de manière ludique, en moins de 10 secondes, sans vous casser la tête contre une définition technique encyclopédique. Mais si vous en préférez une, allez voir : ce lien Wikipedia ).
Regardez ceci, cela vous donnera une bonne explication :
http://en.wikipedia.org/wiki/Serialization
Je pense que l'utilisation la plus courante du terme sérialisation concerne la conversion d'un objet binaire en une représentation XML (ou autre chaîne de caractères) afin qu'il puisse être stocké dans une base de données/un fichier ou envoyé sur un réseau dans un appel de service Web. La désérialisation est le processus inverse - la reconversion d'une chaîne de caractères XML en un objet.
EDIT : Un autre terme que vous pourriez rencontrer est marshalling/unmarshalling. Marshalling est fondamentalement le même concept que la sérialisation, et unmarshalling est le même que la désérialisation.
La sérialisation est le processus qui consiste à convertir un objet en un flux d'octets pour stocker l'objet ou le transmettre en mémoire, dans une base de données ou dans un fichier. Son principal objectif est de sauvegarder l'état d'un objet afin de pouvoir le recréer en cas de besoin. Le processus inverse est appelé désérialisation.
...
Cette illustration montre le processus global de la sérialisation
...
Grâce à la sérialisation, un développeur peut effectuer des actions telles que l'envoi d'un objet à une application distante au moyen d'un service Web, le passage d'un objet d'un domaine à un autre, le passage d'un objet à travers un pare-feu sous la forme d'une chaîne XML, ou le maintien de la sécurité ou d'informations spécifiques à l'utilisateur entre les applications.
De https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/serialization/
(c'est moi qui souligne)
- Réponses précédentes
- Plus de réponses