Πού να χρησιμοποιήσω αμετάβλητα αντικείμενα;

Πίνακας περιεχομένων:

Πού να χρησιμοποιήσω αμετάβλητα αντικείμενα;
Πού να χρησιμοποιήσω αμετάβλητα αντικείμενα;
Anonim

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

Ποιο είναι το νόημα των αμετάβλητων αντικειμένων;

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

Ποια αντικείμενα πρέπει να ονομάζονται αμετάβλητα;

Αμετάβλητα αντικείμενα είναι απλά αντικείμενα των οποίων η κατάσταση (τα δεδομένα του αντικειμένου) δεν μπορεί να αλλάξει μετά την κατασκευή. Παραδείγματα αμετάβλητων αντικειμένων από το JDK περιλαμβάνουν το String και το Integer. Τα αμετάβλητα αντικείμενα απλοποιούν πολύ το πρόγραμμά σας, καθώς: είναι απλά στην κατασκευή, δοκιμή και χρήση.

Πώς υλοποιείτε ένα αμετάβλητο αντικείμενο;

Για να δημιουργήσετε ένα αμετάβλητο αντικείμενο πρέπει να ακολουθήσετε μερικούς απλούς κανόνες:

  1. Μην προσθέσετε καμία μέθοδο ρυθμιστή.
  2. Δήλωση όλων των πεδίων οριστικά και ιδιωτικά.
  3. Αν ένα πεδίο είναι μεταβλητό αντικείμενο, δημιουργήστε αμυντικά αντίγραφά του για μεθόδους λήψης.
  4. Αν ένα μεταβλητό αντικείμενο που μεταβιβάστηκε στον κατασκευαστή πρέπει να εκχωρηθεί σε ένα πεδίο, δημιουργήστε ένα αμυντικό αντίγραφό του.

Πού είμαστεχρήση αμετάβλητης κλάσης στην Java;

Οι αμετάβλητες κλάσεις διευκολύνουν τον τον ταυτόχρονο προγραμματισμό. Οι αμετάβλητες κλάσεις διασφαλίζουν ότι οι τιμές δεν αλλάζουν στη μέση μιας λειτουργίας χωρίς τη χρήση συγχρονισμένων μπλοκ. Αποφεύγοντας τα μπλοκ συγχρονισμού, αποφεύγετε τα αδιέξοδα.

Συνιστάται: