Неизменяемый объект
Материал из Википедии — свободной энциклопедии
Неизменяемый объект (англ. Immutable object) — в объектно-ориентированном программировании объект, который не может быть изменен после своего создания.
Объект может быть неизменямым как полностью, так и частично. Например, применение директивы const к какому либо атрибуту в C++ классе делает объект частично неизменямым. В некоторых случаях объект считается неизменямым с точки зрения пользователя класса, даже если изменяются его внутренние переменные. Как правило, неизменямый объект получает все внутренние значения во время инициализации, либо значения устанавливаются в несколько этапов, но до того, как объект будет использован.
Неизменямые объекты часто используются для устранения дорогих операций копирования и сравнивания, упрощения кода и увеличения скорости исполнения. Однако неуместно делать объект неизменямым, если в нем есть большое количество изменяемых данных.