Sobes.tech
Junior — Middle

Java-da sinif yaratarkən onu dəyişməz etmək üçün hansı prinsiplər istifadə olunmalıdır?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da sinfi dəyişməz (immutable) etmək üçün bir neçə prinsipə riayət etmək lazımdır:

  1. Sinfi final kimi elan edin — beləliklə, onun davranışını dəyişdirəcək alt sinf yaradıla bilməz.
  2. Bütün sahələri privatefinal edin — beləliklə, onlar inisializasiya edildikdən sonra dəyişdirilə bilməz.
  3. Setterlər (sahələri dəyişdirmək üçün metodlar) təmin etməyin.
  4. Bütün sahələri konstruktor vasitəsilə inisializasiya edin.
  5. Əgər sahələr dəyişdirilə bilən obyektlərin referanslarıdırsa (məsələn, massivlər, kolleksiyalar), onları təyin etdikdə və getter-lərdən qaytararkən nüsxələrini yaradın ki, xarici dəyişikliklər daxili vəziyyətə təsir etməsin.

Nümunə:

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

Belə bir sinif, obyekt yaradıldıqdan sonra, onun vəziyyətini dəyişməyə imkan vermir, bu da iplik təhlükəsizliyi və davranışın əvvəlcədən bilinə bilməsi üçün faydalıdır.