Неизменяемый объект

В программировании неизменяемым (англ. immutable) называется объект, состояние которого не может быть изменено после создания.

В функциональном программировании все (в случае чистых языков) или почти все (в случае «нечистых» — англ. impure — языков) данные в программе, как локальные, так и глобальные, являются неизменяемыми. С одной стороны, это существенно повышает стабильность программ за счёт упрощения формальной верификации программ. С другой, это затрудняет решение ряда задач (из которых наиболее часто отмечается задача реализации интерфейса пользователя, который в своей сути представляет собой изменяемое состояние), что вынуждает усложнять системы типов языка — например, монадами или уникальными типами.

В объектно-ориентированном программировании неизменяемые объекты создаются посредством соответствующего шаблона проектирования.

Неизменяемые объекты интересны, например, тем, что потоко-безопасны.

Источник: Википедия

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я