De ce am nevoie de clonare și cum să o pun în aplicare? Ce fel este mai sigur?
0. Utilizarea operatorului de atribuire nu creează un obiect nou, ci doar copiază referința la obiect. Astfel, două linkuri indică aceeași zonă de memorie, la același obiect.
Clonarea unui obiect este folosită pentru a crea un obiect nou cu aceeași stare.
2. O modalitate mai sigură este de a folosi constructorul de copiat, care evită multe probleme. De exemplu:
3. O altă opțiune sigură este metoda din fabrică, care este o metodă statică care returnează o instanță a clasei sale.
Metoda din fabrică are următoarele avantaje față de constructorul de copiat:
- Are un nume (cel mai adesea getInstance sau valueOf), ceea ce face codul mai ușor de înțeles.
- Nu este necesar să creați un obiect nou ca urmare a apelului: Obiectele pot fi stocate în cache și reutilizate.
- Ei pot returna un subtip al tipului de retur. În special, pot returna un obiect care nu are o clasă de implementare.
Dacă ți-a plăcut întrebarea, votează-o
Elen_KL oltimus sarah euuu Midas vicod vkozak megaboom mirash mishamhoyan panser alexgiant LonsMan mixabuben scherband babkamen John_A KpyacaH kabdev hestika Snova T_mann SPereverziev uniservise NastyWaffle rotwood SamTan ifa siliciu NepsOn alext64 ckruber arta svetovik Ekaterina001 irina_zab74 pavelvolny dcba1257908 VasylZ sumbru