Sobes.tech
Back to questions
Junior — Middle
64

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

Answer from AI

sobes.tech AI

Обеспечить неизменяемость объектов в программировании можно следующими способами:

  • Объявить класс как final, чтобы предотвратить наследование и изменение поведения.

  • Сделать все поля private final, чтобы их нельзя было изменить после инициализации.

  • Инициализировать все поля через конструктор, без сеттеров.

  • Не предоставлять методы, изменяющие состояние объекта (например, сеттеры).

  • Для полей-ссылок на изменяемые объекты (например, коллекции) использовать неизменяемые версии или возвращать копии.

Пример неизменяемого класса в 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;
    }
}

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