Sobes.tech
Junior — Middle

Қандай принсиплар Java-да класс яратишда уни ўзгартирмаслик учун қўлланиши керак?

sobes.tech AI

Ҷавоб аз AI

За да направите клас в Java неизменяем (immutable), трябва да спазвате няколко принципа:

  1. Декларирайте класа като final — за да не може да се създаде подклас, който променя поведението.
  2. Направете всички полета private и final — за да не могат да бъдат променяни след инициализация.
  3. Не предоставяйте сетъри (методи за промяна на полетата).
  4. Инициализирайте всички полета чрез конструктора.
  5. Ако полетата са референции към променяеми обекти (например масиви, колекции), създавайте им копия при присвояване и при връщане от гетърите, за да не влияят външните промени върху вътрешното състояние.

Пример:

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

Такъв клас след създаването на обекта не позволява да се промени състоянието му, което е полезно за безопасност на нишките и предсказуемост на поведението.