Wat is de betekenis van het serialisatieconcept in programmeertalen?
wanneer we het kenmerk Serializable
boven een klasse gebruiken, wat is dan de betekenis?
Antwoord 1, autoriteit 100%
Stel dat je twee applicaties hebt die op twee verschillende fysieke machines draaien. Beide applicaties moeten gegevens uitwisselen die vaak door beide applicaties worden gebruikt. Deze applicaties praten met elkaar om de gegevens met sommige media te delen. Deze media kunnen een bestandssysteem zijn, tcp- of udp-verbindingen of een ander geschikt netwerkprotocol of kunnen directe gegevensuitwisseling in het geheugen zijn. Elk van deze media zou alleen gegevens begrijpen die worden beschreven in de vorm van een reeks bits. Dus wanneer een applicatie een waarde 10 naar een andere moet sturen, wordt de waarde 10 verzonden als zijn binaire representatie 1010 en geef je ook wat informatie door die 1010 beschrijft. Deze meta-informatie zal ook een reeks bits zijn die de andere applicatie kan gemakkelijk begrijpen. Dat was echter gemakkelijk.
Laten we nog een voorbeeld nemen, waarbij deze twee apps een complexer, niet-primitiever gegevenstype moeten uitwisselen. Stel dat ze de objecten van het type Boek moeten uitwisselen, waarbij Boek een op maat gedefinieerde klasse is in uw toepassing en beide toepassingen de definitie van het type Boek hebben.
public class Book
{
Book() { }
public long BookId { get;set; }
public string Author { get;set; }
public string Title { get;set; }
}
Hoe ga je de objecten van het type boek uitwisselen tussen de twee applicaties? Om het object tussen twee apps te kunnen delen, moet u de Boek-objecten kunnen converteren naar binaire weergave. Dit is waar serialisatie in beeld komt.
Met behulp van serialisatie kunt u definiëren hoe een object kan worden omgezet in zijn binaire weergave. De ontvangende applicatie zou het omgekeerde proces uitvoeren, namelijk de-serialisatie, dat een boekobject construeert uit zijn binaire representatie.
Antwoord 2, autoriteit 22%
Er is geen betere uitleg dan die van wikipedia.
In de informatica, in de context van
gegevensopslag en -overdracht,
serialisatie is het proces van
een datastructuur of object converteren
in een reeks bits, zodat het kan
worden opgeslagen in een bestand of geheugenbuffer,
of verzonden via een netwerk
verbindingslink wordt “opgestaan”
later op dezelfde of een andere computer
omgeving.
http://en.wikipedia.org/wiki/Serialization
Het kenmerk Serializable kan ook niet worden gebruikt op methoden.
Aangegeven door het kenmerkgebruik
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Delegate, Inherited = false)]
Antwoord 3, autoriteit 10%
Serialisatie is het proces waarbij een object wordt omgezet in een
stroom van bytes. Deserialisatie is het tegenovergestelde proces van
een object maken van een stroom van bytes.
Serialisatie/deserialisatie wordt meestal gebruikt voor transport
objecten (bijv. tijdens het op afstand nemen), of om objecten te behouden (bijv.
naar een bestand of database).Serialisatie kan worden gedefinieerd als de
proces van het opslaan van de staat van een object naar een opslag
medium. Tijdens dit proces, de publieke en private velden
van het object en de naam van de klasse, inclusief de
assembly die de klasse bevat, worden geconverteerd naar een stroom van
bytes, die vervolgens naar een gegevensstroom wordt geschreven. Wanneer de
object wordt vervolgens gedeserialiseerd, een exacte kloon van de
oorspronkelijke object is gemaakt.
meer hierover: http://www.allinterview.com/showanswers/20627.html
Antwoord 4, autoriteit 3%
Serialisatie is het proces waarbij gegevens de gegevensstructuur of objectstatus vertalen in een formaat dat kan worden opgeslagen
Antwoord 5
Waarom hebben we een serialisatie nodig?
In proceduretaal zoals Cobol of C is er geen concept van serialisatie. Waarom gebruiken we het dan in OOP? Laten we Java nemen. Je hebt een klasse die meerdere klassen met de naam Objects maakt, en je wilt een van die objectenstatus (huidige waarden van variabelen) via het netwerk doorgeven via Message Oriented Middleware in de vorm van een bytestroom, en je hebt serialisatie en deserialisatie nodig.
Als meerdere talen het eens zijn over dit bytestream-formaat, kan serialisatie zelfs een manier bieden voor anderszins incompatibele systemen om gegevens uit te wisselen.