Estoy comenzando con la programación orientada a objetos (OOP) y me gustaría saber: ¿cuál es el significado de serialización en el lenguaje OOP?

2

Simplemente hablando Publicación por entregas es un proceso de conversión de un objeto en un flujo de bytes para que pueda transferirse a través de una red o almacenarse en un almacenamiento persistente.

La deserialización es exactamente lo contrario: obtenga un flujo de bytes de la red o del almacenamiento de persistencia y conviértalo de nuevo en el objeto con el mismo estado.

Lo que hay que entender es cómo se interpretan o manipulan esos flujos de bytes para que obtengamos exactamente el mismo objeto / mismo estado. Hay varias formas de lograrlo. Algunos de ellos son –

  1. XML: Convierta el objeto a XML, transfiéralo a través de una red o guárdelo en un archivo / db. Recupéralo y conviértelo de nuevo al objeto con el mismo estado. En Java usamos JAXB(Arquitectura Java para enlace XML). (Desde java 6 viene incluido con JDK).
  2. JSON: Lo mismo se puede hacer convirtiendo el Objeto a JSON (Notación de objetos JavaScript). Una vez más, existe una biblioteca GSON que se puede utilizar para esto.
  3. O podemos utilizar la serialización proporcionada por el propio lenguaje de programación orientada a objetos. Por ejemplo, en Java puedes serializar un Objeto y hacerlo implementar Serializable interface y escribir en Object Stream.

4

Explicación simple a través de la imagen:

¡Rex, mi perro, está serializado!

Resumen:

La serialización significa transformar algo (por ejemplo, mi perro Rex) en una serie de unos y ceros, que pueden transportarse a través de la línea telefónica y almacenarse en la memoria. Mis amigos en el extranjero pueden volver a traducir esos 1 y 0 en una representación perfecta de un cachorro (deserialización) para que puedan disfrutar de la compañía de Rex.

Aclaración de la analogía

Amigos, esta es una analogía. No creo que realmente puedas serializar un cachorro LOL. Serializaría una estructura de datos o algún otro objeto complejo. (Escribí esta respuesta para que puedas entender el concepto, de una manera divertida, en menos de 10 segundos, sin romperte la cabeza contra una definición enciclopédica técnica. Pero si prefieres una, mira: este enlace de Wikipedia).

2

Mira esto, esto te dará una buena explicación:

http://en.wikipedia.org/wiki/Serialization

Creo que el uso más común del término serialización tiene que ver con convertir un objeto binario en una representación XML (u otra cadena) para que pueda almacenarse en una base de datos / archivo o enviarse a través de una red en una llamada de servicio web. La deserialización es el proceso inverso: convertir un XML / cadena de nuevo en un objeto.

EDITAR: Otro término con el que puede encontrarse es ordenar / desagrupar. La clasificación es básicamente el mismo concepto que la serialización, y la desorganización es lo mismo que la deserialización.

1

La serialización es el proceso de convertir un objeto en una secuencia de bytes para almacenar el objeto o transmitir a la memoria, una base de datos o un archivo. Su propósito principal es guardar el estado de un objeto para poder recrearlo cuando sea necesario. El proceso inverso se llama deserialización.

Esta ilustración muestra el proceso general de serialización

Proceso general de serialización

A través de la serialización, un desarrollador puede realizar acciones como enviar el objeto a una aplicación remota por medio de un servicio web, pasar un objeto de un dominio a otro, pasar un objeto a través de un firewall como una cadena XML o mantener la seguridad o la especificación del usuario. información entre aplicaciones

De https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/serialization/

(énfasis mío)

Publicación por entregas es el proceso de convertir datos desordenados (como un objeto) en un serie de tokens que se pueden utilizar más tarde para reconstruir los datos originales. La forma serializada suele ser una cadena de texto, pero no tiene por qué serlo.

La serialización está convirtiendo los datos en una «cadena» lineal de bytes.

Otros han dicho más o menos lo mismo, pero hago hincapié en que los modelos de computadora requieren que los datos se ajusten a la RAM direccionada unidimensionalmente o al almacenamiento persistente.

La mayoría de las cosas que son «datos» son inherentemente serializables (incluso si debe reducir el modelo abstracto a uno lineal); no serializable …