Skip to main content

Τι είναι ένα αμετάβλητο αντικείμενο;

Σε αντικειμενοστραφή προγραμματισμό, ένα αμετάβλητο αντικείμενο είναι ένα αντικείμενο του οποίου οι ιδιότητες δεν μπορούν να αλλάξουν μετά τη δημιουργία του.Τα περισσότερα αντικείμενα, αντίθετα, είναι μεταβλητά αντικείμενα, πράγμα που σημαίνει ότι μερικές ή όλες οι ιδιότητές τους μπορούν να αλλάξουν ελεύθερα μετά τη δημιουργία.Μια ποικιλία γλωσσών υπολογιστών έχει τη δυνατότητα να δημιουργεί αμετάβλητα αντικείμενα, συμπεριλαμβανομένων των Java, C ++, Erlang, TCL και Scala.Δηλώνοντας ένα διαφορετικό αντικείμενο για να είναι αμετάβλητο.Η μεθοδολογία για τη δημιουργία μιας αμετάβλητης κλάσης ποικίλλει ανάλογα με τη γλώσσα του υπολογιστή που χρησιμοποιείται.Ανεξάρτητα από τη γλώσσα, μια αμετάβλητη τάξη δεν πρέπει να έχει μεθόδους που να μπορούν να αλλάξουν τα εσωτερικά της δεδομένα και να μην αλλάξουν οι μεθόδους και να mDASH;δηλαδή υπερβολική ή υπερφορτωμένη mdash;με τρόπο που θα άλλαζε τα εσωτερικά του δεδομένα.Αυτό είναι το πιο περίπλοκο από τις δύο προσεγγίσεις.Για να δημιουργήσετε ένα αμετάβλητο αντικείμενο από ένα διαφορετικό αντικείμενο, από την άλλη πλευρά, μπορεί κανείς να εφαρμόσει συχνά μια λέξη -κλειδί για να ορίσει το αντικείμενο ως αμετάβλητο. "Ως παράδειγμα, η αμετάβλητη δημιουργία αντικειμένων στη Java βασίζεται σε μεγάλο βαθμό στην τελική λέξη -κλειδί.Ένας γρήγορος τρόπος για να γίνει μια τάξη αμετάβλητη στην Java είναι να δηλώσει την τάξη, καθώς και όλες τις μεθόδους και τα μέλη της, τελικό.Μια παρόμοια στρατηγική μπορεί επίσης να χρησιμοποιηθεί στην C ++ με τη λέξη -κλειδί Const.Αυτές οι προσεγγίσεις, ανάλογα με το περιεχόμενο της τάξης, μπορεί να μην είναι οι καλύτερες, ωστόσο.Γενικά, τα αντικείμενα μπορούν συνήθως να καταστούν αμετάβλητα με προσεκτική συντήρηση των εσωτερικών τους δεδομένων.

Κάνοντας ένα αμετάβλητο αντικείμενο χρησιμοποιώντας μια λέξη -κλειδί, όπως στο παραπάνω παράδειγμα, είναι συχνά πολύ πιο εύκολο από το να γράφει μια ολόκληρη τάξη για να είναι αμετάβλητη.Χρησιμοποιώντας αυτή την προσέγγιση, ωστόσο, έχει τους κινδύνους της.Όταν ορίζει ρητά ένα αμετάβλητο αντικείμενο με αυτόν τον τρόπο, είναι σημαντικό ο προγραμματιστής να είναι σίγουρος ότι όλες οι κατάλληλες ιδιότητες και δεδομένα έχουν ενσωματωθεί πρώτα στο αντικείμενο.Η βασιζόμενη σε ένα ελλιπές αντικείμενο μπορεί να είναι επικίνδυνο, ειδικά εάν λείπει ένα βασικό κομμάτι πληροφοριών.

Εάν ένα αντικείμενο είναι μεταβλητό, αλλά απαιτεί σωστά δημιουργημένα δεδομένα, τα αμετάβλητα δεδομένα πρέπει να αρχικοποιηθούν πριν από την κατασκευή του μεταβλητού αντικειμένου.Τα αμετάβλητα αντικείμενα είναι πάντα αμετάβλητα, είτε πρόκειται για τιμές δεδομένων είτε για μεγάλα αντικείμενα, και πρέπει πάντα να αντιμετωπίζονται ως τέτοια.Γενικά, ένα αμετάβλητο αντικείμενο δεν μπορεί να γίνει μεταβλητό μετά τη δημιουργία του, αν και μερικές φορές μπορεί να αντιγραφούν ως μεταβλητά αντικείμενα.Συνήθως μπορεί να υποτεθεί ότι ένα αμετάβλητο αντικείμενο και οποιοδήποτε από τα αντίγραφά του είναι επίσης αμετάβλητα, γεγονός που μπορεί να αποτρέψει τα δεδομένα ή τα προβλήματα μνήμης.