Незмінний об'єкт
З Вікіпедії, безкоштовно encyclopedia
Незмі́нний об'є́кт (англ. Immutable object) — в об'єктно-орієнтованому програмуванні, об'єкт, стан якого не може бути змінено після створення. На противагу незмінним, стан змінних об'єктів може змінюватись після створення. Об'єкт може бути як незмінним повністю, так і певні його атрибути можуть бути задекларовані незмінними, використовуючи, наприклад, декларацію const мови програмування C++. У деяких випадках, об'єкт вважається незмінним навіть тоді, коли змінюються деякі його внутрішні атрибути, за умови, що зовні його стан виглядає незмінним. Наприклад, об'єкт, який використовує запам'ятовування результатів проміжних обчислень для кешування результатів складних обчислень, може вважатись незмінним. Початковий стан незмінного об'єкта, як правило, визначається під час створення об'єкта, але, він може, також, визначатись безпосередньо перед використанням об'єкта.
Часто, незмінні об'єкти можуть бути корисними через те, що вони дозволяють уникнути деяких дорогих операцій копіювання та порівняння, полегшуючи, в такий спосіб, вихідний код програми, та прискорюючи її роботу. Однак, у деяких випадках, незмінність об'єкта може заважати, наприклад, якщо об'єкт містить велику кількість змінних даних. Через це, багато мов програмування мають можливості роботи як із змінними, так і з незмінними об'єктами.
Незмінні об'єкти часто бувають корисними завдяки тому, що вони по суті потоко-безпечні.[1] Інша перевага в тому, що вони є простішими для розуміння і пропонують більш високий рівень безпеки, ніж змінювані об'єкти.[1]