Sobes.tech
Junior — Middle

Jakie zasady należy stosować podczas tworzenia klasy w Java, aby uczynić ją niezmienną?

sobes.tech AI

Odpowiedź od AI

Aby uczynić klasę w Java niezmienną (immutable), należy przestrzegać kilku zasad:

  1. Zadeklarować klasę jako final — aby nie można było tworzyć podklas, które zmieniłyby zachowanie.
  2. Ustawić wszystkie pola jako private i final — aby nie można było ich zmienić po inicjalizacji.
  3. Nie udostępniać setterów (metod do zmiany pól).
  4. Inicjalizować wszystkie pola przez konstruktor.
  5. Jeśli pola są odwołaniami do obiektów zmiennych (np. tablice, kolekcje), tworzyć ich kopie podczas przypisywania i zwracania z getterów, aby zewnętrzne zmiany nie wpływały na stan wewnętrzny.

Przykład:

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;
    }
}

Taka klasa po utworzeniu obiektu nie pozwala na zmianę jego stanu, co jest przydatne dla bezpieczeństwa wątków i przewidywalności zachowania.