Sobes.tech
Junior — Middle

Ποια αρχές πρέπει να χρησιμοποιούνται κατά τη δημιουργία μιας κλάσης σε Java για να την κάνετε αμετάβλητη;

sobes.tech AI

Απάντηση από AI

Για να κάνετε μια κλάση στη Java αμετάβλητη (immutable), πρέπει να ακολουθήσετε μερικές αρχές:

  1. Ορίστε την κλάση ως final — ώστε να μην μπορεί να δημιουργηθεί υποκλάση που θα αλλάξει τη συμπεριφορά.
  2. Κάντε όλα τα πεδία private και final — ώστε να μην μπορούν να αλλάξουν μετά την αρχικοποίηση.
  3. Μην παρέχετε setters (μεθόδους για την αλλαγή των πεδίων).
  4. Αρχικοποιήστε όλα τα πεδία μέσω του κατασκευαστή.
  5. Αν τα πεδία είναι αναφορές σε μεταβλητά αντικείμενα (π.χ. πίνακες, συλλογές), δημιουργήστε αντίγραφα κατά την ανάθεση και την επιστροφή από τους getters, ώστε οι εξωτερικές αλλαγές να μην επηρεάζουν την εσωτερική κατάσταση.

Παράδειγμα:

public final class ImmutablePerson {
    private final String name;
    private final int age;

    public ImmutablePerson(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

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