Дубока копија

Аутор: Lewis Jackson
Датум Стварања: 8 Може 2021
Ажурирати Датум: 23 Јуни 2024
Anonim
Копия видео "1942 ст Погостье"
Видео: Копия видео "1942 ст Погостье"

Садржај

Дефиниција - Шта значи дубока копија?

Дубока копија у Ц # односи се на технику којом се ствара копија објекта тако да садржи копије и чланова инстанције и објеката на које упућују референтни чланови.

Дубинска копија је намењена копирању свих елемената објекта, који укључују директно референциране елементе (типа вредности) и индиректно референциране елементе референтног типа који садрже референцу (поинтер) на меморијску локацију која садржи податке, а не садржи сами подаци. Дубока копија користи се у сценаријима где се ствара нова копија (клон) без икаквог позивања на оригиналне податке.


Увод у Мицрософт Азуре и Мицрософт Цлоуд | Кроз овај водич научићете о томе шта се рачуна у облаку и како вам Мицрософт Азуре може помоћи да мигрирате и покренете посао из облака.

Техопедиа објашњава дубоку копију

Дубока копија се разликује од плитке копије на начин на који се копирају чланови референтног типа. Док се у оба случаја копирају припадници поља вриједности типа, изводи се мало-битна копија поља. Када се копирају поља референтног типа, плитка копија укључује копирање само референце, док се у дубокој копији изводи нова копија наведеног објекта.

Дубока копија може се илустровати примером ако се узме у обзир запослени објект који има АддрессИнфо као референтни члан заједно са осталим члановима типа вредности. Дубинска копија Емплоиее ствара нови објект, Емплоиее2, са члановима врсте вредности једнаким Емплоиее, али упућује на нови објект, АддрессИнфо2, који је копија АддрессИнфо.

Дубока копија може се имплементирати било којим од следећих метода:


  • Конструктор конструкције класе може се имплементирати с потребном логиком за копирање чланова и вриједности и вриједности (након правилне додјеле меморије). Ова метода је напорна и наклоњена грешкама.
  • Систем.Објецт.МембервисеЦлоне метода се може користити за копирање несталних чланова типа вредности.Копије објеката референтног типа могу се креирати и додијелити с истим сетом вриједности као у оригиналу
  • Објект који мора бити дубоко копиран може се сериализовати и десериализовати у нови објект враћањем. Ова метода је аутоматизована и не захтева промене кода за модификације чланова објекта, али је спорија од других метода и захтева да се клонирани објект може сериализовати
  • Размишљање са рекурзијом може се употребити за добијање плитке копије, на којој се може додати додатни код потребан за дубоку копију. Ова метода је аутоматизирана и не захтијева измјене кода за било какво додавање или уклањање поља у објекту. То је спорије и није дозвољено у делимичном окружењу поверења
  • Може се користити средњи код језика, што је брже, али резултира мањом читљивошћу кода и отежаним одржавањем

Да бисте имплементирали дубоку копију:


  • Објекат мора бити добро дефинисан и не може бити произвољан
  • Својства објекта се неће разматрати
  • Клонирање се мора аутоматизовати интелигенцијом за посебне случајеве (попут објеката који садрже неуправљане референце)