Sobes.tech
Junior — Middle

Какви методи могат да се използват за реализиране на неизменяемост на класове в програмирането?

sobes.tech AI

Отговор от AI

Для реализации неизменяемых (immutable) классов в Java обычно применяют следующие методы:

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

Такой класс после создания объекта не позволяет изменить его состояние.