Назад к вопросам
СБЕР
Junior — Middle
77
Какие методы позволяют обеспечить безопасность и неизменность объекта, сделанного по принципу immutable?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Для обеспечения безопасности и неизменности объекта, сделанного по принципу immutable (неизменяемого), применяются следующие методы:
- Использование final полей — все поля объекта объявляются как
final, чтобы их нельзя было изменить после инициализации. - Отсутствие сеттеров — не предоставлять методы для изменения состояния объекта после создания.
- Инициализация через конструктор — все значения задаются при создании объекта.
- Защита от изменения ссылочных полей — если объект содержит ссылки на изменяемые объекты, нужно создавать их копии (deep copy) при передаче и возвращении, чтобы внешний код не мог изменить внутреннее состояние.
- Класс объявляется как final — чтобы предотвратить наследование и переопределение поведения, которое может нарушить неизменность.
Пример простого immutable класса на Java:
public final class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Таким образом, объект после создания не может быть изменён, что обеспечивает безопасность и предсказуемость его состояния.