Sügav koopia

Autor: Lewis Jackson
Loomise Kuupäev: 8 Mai 2021
Värskenduse Kuupäev: 25 Juunis 2024
Anonim
Sügav koopia - Tehnoloogia
Sügav koopia - Tehnoloogia

Sisu

Definitsioon - mida tähendab sügav koopia?

Sügav koopia (C #) viitab tehnikale, mille abil luuakse objekti koopia selliselt, et see sisaldab mõlema eksemplari liikmete koopiaid ja objekte, millele viite liikmed viitavad.

Sügav koopia on ette nähtud objekti kõigi elementide kopeerimiseks, mis hõlmavad otseselt viidatud elemente (väärtuse tüüpi) ja kaudselt viidatud viitetüübi elemente, mis omavad viidet (kursorit) mäluasukohta, mis sisaldab andmeid, mitte sisaldab andmed ise. Sügavat koopiat kasutatakse stsenaariumi korral, kus luuakse uus koopia (kloon) ilma viideteta algsetele andmetele.


Sissejuhatus Microsoft Azure'i ja Microsoft Cloud | Kogu selle juhendi kaudu saate teada, mis on pilvandmetöötlus ja kuidas Microsoft Azure aitab teil pilvest rännata ja oma ettevõtet juhtida.

Techopedia selgitab sügavat koopiat

Sügav koopia erineb madalast koopiast selle poolest, kuidas objekti referentstüüpi liikmeid kopeeritakse. Väärtustüüpi põllu liikmeid kopeerides tehakse mõlemal juhul põllu ükshaaval koopia. Viite tüüpi väljade kopeerimisel hõlmab pinnapealne kopeerimine ainult viite kopeerimist, samas kui sügavas eksemplaris tehakse viidatud objekti uus koopia.

Sügavat koopiat saab näitega illustreerida, kui vaadelda töötaja objekti, millel on AddressInfo võrdlustüübi liikmena, koos teiste väärtustüübi liikmetega. Töötaja sügav koopia loob uue objekti Töötaja2, mille liikmeks olevad väärtused on töötajaga võrdsed, kuid viitab uuele objektile, aadressiinfo2, mis on aadressiInfo koopia.

Sügavat koopiat saab rakendada järgmiste meetodite abil:


  • Klassi koopiakonstruktorit saab rakendada vajaliku loogikaga nii väärtuse kui ka referentsi (pärast korralikku mälu jaotust) tüüpi liikmete kopeerimiseks. See meetod on tüütu ja veaohtlik.
  • Väärtuse tüübi mittestaatiliste liikmete kopeerimiseks saab kasutada meetodit System.Object.MemberwiseClone.Võrdlustüüpi objektide koopiaid saab luua ja neile määrata sama väärtuste komplekt kui originaalil
  • Objekti, mida tuleb sügavalt kopeerida, saab selle taastades seeria seeriastada ja seeriast lahti võtta uueks objektiks. See meetod on automatiseeritud ja ei vaja objekti liikmete modifikatsioonide jaoks koodimuudatusi, kuid on teistest meetoditest aeglasem ja nõuab, et kloonitud objekt oleks seerialiseeritav
  • Madala eksemplari saamiseks võib kasutada rekursiooniga peegeldust, millesse saab lisada sügavkoopia jaoks vajaliku lisakoodi. See meetod on automatiseeritud ja ei vaja objekti väljade lisamiseks või eemaldamiseks koodimuudatusi. See on aeglasem ega ole osalises usalduskeskkonnas lubatud
  • Võib kasutada keskmist keelekoodi, mis on kiirem, kuid põhjustab väiksemat loetavust ja rasket hooldust

Süvakoopia rakendamine:


  • Objekt peab olema täpselt määratletud ja see ei tohi olla meelevaldne
  • Objekti omadusi ei arvestata
  • Kloonimine tuleb erijuhtude jaoks automatiseerida luureandmetega (näiteks objektid, mis sisaldavad haldamata viiteid)