Незмінні обєкти Це обєкти, значення яких не можуть бути змінені після їх створення.
У Java незмінність можна досягти за допомогою кількох методів та принципів. Одним з них є використання ключового слова final. Коли поле оголошено із ключовим словом final, його значення не можна змінити після ініціалізації.
Іншим способом створення незмінних обєктів є використання конструкторів замість сетерів. Якщо обєкт може бути створений лише за допомогою конструктора, і його стан не може бути змінений за допомогою сеттерів, то такий обєкт буде незмінним.
Як правило, незмінні обєкти мають ряд переваг:
- Вони безпечні в багатопотоковому середовищі, оскільки їх значення не можуть бути змінені одним потоком під час використання іншим потоком.
- Вони простіші у використанні і тестуванні, оскільки їх стан може бути змінено випадково чи непередбачувано.
- Вони підходять для використання як ключі в хеш-таблицях і множинах, так як їх значення не можуть змінитися і загубитися в процесі.
Що таке immutable обєкти? | Переваги необмежених обєктів | Як зробити обєкт нерозумний в Java? |
---|---|---|
Immutable обєкти це обєкти, які не можуть бути змінені після створення. Значення їх полів залишається незмінним протягом життєвого циклу обєкта. |
|
|
Як зробити immutable обєкт Java?
Щоб створити immutable клас необхідно:
- Зробити класу final.
- Зробити всі поля private.
- Не створювати конструктор за замовчуванням та сеттери для полів
- У конструкторі з параметрами та гетерами проводити глибоке копіювання одержуваного/переданого обєкта.
Що таке неймовірний Java?
Обєкти, які після створення можна змінити, називаються змінними або mutable. Обєкти, які після їх створення не можна змінити, Називаються незмінними або immutable.
Як зробити клас Імутабельним Джава?
Для того щоб клас вважався іммутабельним — усі його поля мають бути final. Тобто будь-яка зміна внутрішнього стану обєкта, на підставі іммутабельного класу, тягне за собою створення нового обєкта цього ж класу.