Sobes.tech
Junior — Middle

Kokius principus reikia naudoti kuriant klasę Java kalboje, kad ji būtų nekintama?

sobes.tech AI

Atsakymas iš AI

Kad Java klasė būtų nekintama (immutable), reikia laikytis kelių principų:

  1. Deklaruokite klasę kaip final — kad negalima būtų sukurti pogrupio, kuris pakeistų elgesį.
  2. Padarykite visus laukus private ir final — kad jie negalėtų būti pakeisti po inicializacijos.
  3. Nenaudokite setter'ių (metodų, kurie keičia laukus).
  4. Inicializuokite visus laukus per konstruktorių.
  5. Jei laukų nuorodos yra į keičiamus objektus (pvz., masyvus, kolekcijas), kurkite jų kopijas priskyrimo ir grąžinimo metu, kad išoriniai pakeitimai nepaveiktų vidinės būsenos.

Pavyzdys:

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

Tokios klasės po objekto sukūrimo neleidžia keisti jos būsenos, kas yra naudinga dėl sriečių saugumo ir elgesio prognozuojamumo.