Junior — Middle
Εξηγήστε τι σημαίνει η δημιουργία αντικειμένων που είναι αμετάβλητα μετά την αρχικοποίησή τους.
sobes.tech AI
Απάντηση από AI
Η δημιουργία αντικειμένων που είναι αμετάβλητα, δηλαδή που δεν αλλάζουν μετά την αρχικοποίησή τους, σημαίνει ότι μόλις το αντικείμενο δημιουργηθεί και τα πεδία του οριστούν, η κατάσταση αυτού του αντικειμένου δεν μπορεί να αλλάξει. Τέτοια αντικείμενα ονομάζονται immutable (αμετάβλητα).
Στη C#, αυτό επιτυγχάνεται, για παράδειγμα, με:
- δήλωση των πεδίων ως
readonly; - απουσία setters στις ιδιότητες (μόνο getters);
- αρχικοποίηση όλων των δεδομένων μέσω του κατασκευαστή.
Πλεονεκτήματα των αμετάβλητων αντικειμένων:
- Ασφάλεια σε πολλαπλά νήματα χωρίς επιπλέον συγχρονισμό.
- Απλοποίηση της κατανόησης του κώδικα, καθώς η κατάσταση του αντικειμένου δεν αλλάζει.
- Χρήση ως κλειδιά σε συλλογές και cache.
Παράδειγμα:
public class Person
{
public string Name { get; }
public int Age { get; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
}
Μετά τη δημιουργία μιας στιγμιότυπου Person, οι ιδιότητές του δεν μπορούν να αλλάξουν.