Как сделать класс immutable java
4 года назад
Человек-Молекула
Ответы
0
Для того чтобы сделать класс immutable
в Java
, нужно выполнить следующие шаги:
- Сделать все поля класса
final
. Это запретит изменение значений этих полей после создания объекта. - Удалить все сеттеры для полей класса.
- Если класс содержит изменяемые объекты, то следует создать копии этих объектов в конструкторе и вернуть их через геттеры. Это защитит от изменения объектов извне.
- При создании объекта необходимо инициализировать все поля. Это можно сделать через конструктор, или же если все поля имеют значения по умолчанию, то можно использовать блок инициализации.
- Не допускайте наследования от вашего класса. Можно либо объявить класс
final
, либо сделать все его конструкторы приватными, чтобы нельзя было создать наследников.
Пример:
- В данном примере класс содержит три поля:
id
,name
иnumbers
. Все они помечены какfinal
. - В конструкторе происходит копирование объекта
numbers
, чтобы сохранить его неизменным. - Геттеры возвращают копии полей для предотвращения изменения объекта извне.
- Класс объявлен как
final
, чтобы запретить наследование от него.
2 года назад
Иван Полежаев