Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει το Shallow Copy;
Το ρηχό αντίγραφο, στο C #, είναι η διαδικασία δημιουργίας ενός κλώνου ενός αντικειμένου, δημιουργώντας μια νέα εμφάνιση του ίδιου τύπου με το πρωτότυπο αντικείμενο και αντιγράφοντας τα μη στατικά μέλη του υπάρχοντος αντικειμένου στον κλώνο. Τα μέλη του τύπου τιμής αντιγράφονται bit-by bit ενώ τα μέλη του τύπου αναφοράς αντιγράφονται έτσι ώστε το αναφερόμενο αντικείμενο και ο κλώνος του να αναφέρονται στο ίδιο αντικείμενο.
Γενικά, το αβαθές αντίγραφο χρησιμοποιείται όταν η απόδοση είναι μία από τις απαιτήσεις μαζί με την προϋπόθεση ότι το αντικείμενο δεν θα μεταλλαχθεί σε όλη την εφαρμογή. Με τη διέλευση του κλώνου που περιέχει αμετάβλητα δεδομένα, εξαλείφεται η πιθανότητα διαφθοράς με οποιοδήποτε κώδικα. Το έγχρωμο αντίγραφο είναι αποτελεσματικό όταν οι αναφορές αντικειμένων επιτρέπουν στα αντικείμενα να περνούν γύρω από τη διεύθυνση μνήμης, έτσι ώστε να μην χρειάζεται να αντιγραφεί ολόκληρο το αντικείμενο.
Το έγχρωμο αντίγραφο είναι επίσης γνωστό ως copywise.
Η Techopedia εξηγεί το Shallow Copy
Το ρηχό αντίγραφο είναι παρόμοιο με το βαθύ αντίγραφο στην ανάθεση κάθε μέλους ενός αντικειμένου με αυτό ενός άλλου αντικειμένου, αλλά διαφέρει στον τρόπο με τον οποίο αντιγράφεται ο τύπος αναφοράς. Σε αντίθεση με το ρηχό αντίγραφο όπου η αναφορά αντιγράφεται μόνο, σε βαθιά αντίγραφο, δημιουργείται ένα νέο αντίγραφο του αναφερόμενου αντικειμένου.
Για παράδειγμα, σκεφτείτε ένα αντικείμενο εργαζόμενου που περιέχει λεπτομέρειες προσωπικών πληροφοριών, συμπεριλαμβανομένης μιας λίστας αντικειμένων διεύθυνσης που αποθηκεύουν πολλαπλές διευθύνσεις υπαλλήλων. Εκτελώντας ένα ρηχό αντίγραφο ενός αντικειμένου υπαλλήλου, μπορεί να δημιουργηθεί ένας κλώνος του αντικειμένου υπαλλήλου με αναφορές στην ίδια λίστα αντικειμένων διεύθυνσης που ανήκουν στο αρχικό αντικείμενο του εργαζομένου.
Οι μέθοδοι για την εκτέλεση ρηχών αντιγράφων περιλαμβάνουν:- Καλέστε τη μέθοδο Μέθοδος Μέλους του αντικειμένου
- Δημιουργήστε έναν κλώνο χειροκίνητα μέσω μιας προσαρμοσμένης μεθόδου που είναι κουραστική αλλά εύκολη στη ρύθμιση
- Χρησιμοποιήστε μια τεχνική αντανάκλασης που παρέχει αυτοματοποιημένη εγκατάσταση για να εκτελεί ρηχά αντίγραφα, αλλά με γενικές επιδόσεις
- Χρησιμοποιήστε μια μέθοδο serialization που είναι πιο αργή από την αντανάκλαση, αλλά είναι αυτοματοποιημένη και απλή
