Sobes.tech
Назад к вопросам
Junior — Middle
68

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

Ответ от нейросети

sobes.tech 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;
    }
}

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