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

Неизменяемый объект
Шаблон проектирования
Неизменяемый объект
Immutable object
Описан в Design Patterns

Нет

Неизменяемый объект (англ. Immutable object) — в объектно-ориентированном программировании объект, который не может быть изменён после своего создания.

Содержание

Виды неизменяемых объектов

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

Применение

Неизменяемые объекты часто используются для устранения дорогих операций копирования и сравнения, для упрощения кода и увеличения скорости исполнения. Однако неуместно делать объект неизменяемым, если в нём есть большое количество изменяемых данных.

Примером таких объектов могут служить строки в Java, C#, VB.NET и Python. Так, операции изменения строки приводят к созданию нового объекта строки и разрушению старого. Такой подход позволяет исключить манипулирование (перенос, изменение размера) большими массивами данных.

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "Неизменяемый объект" в других словарях:

  • Изменяемый объект — Неизменяемый объект (англ. Immutable object) в объектно ориентированном программировании объект, который не может быть изменён после своего создания. Содержание 1 Виды неизменяемых объектов 2 Применение 3 См. также …   Википедия

  • Шаблон проектирования — У этого термина существуют и другие значения, см. Паттерн. В разработке программного обеспечения, шаблон проектирования или паттерн (англ. design pattern) повторимая архитектурная конструкция, представляющая собой решение проблемы… …   Википедия

  • Объектный пул — У этого термина существуют и другие значения, см. Пул (значения). Шаблон проектирования Объектный пул Object pool Тип: порождающий Описан в Design Patterns Нет Объектный пул (англ. object pool) …   Википедия

  • Proxy (шаблон проектирования) — У этого термина существуют и другие значения, см. Proxy. Шаблон проектирования Заместитель Proxy Тип: структурный Описан в Design Patterns Да Шаблон Proxy (определяет объект заместитель англ. surrogate …   Википедия

  • Шаблон делегирования — Шаблон проектирования Шаблон делегирования Delegation pattern Описан в Design Patterns Нет В разработке ПО, шаблон делегирования (англ. delegation pattern)  это способ, которым объект внешне выражает некоторое поведение, но в… …   Википедия

  • Состояние (шаблон проектирования) — Шаблон проектирования Состояние State Тип: поведенческий Описан в Design Patterns Да Состояние (англ. State)  шаблон проектирования. Используется в тех случаях, когда во время выполнения программы объект …   Википедия

  • Double checked locking — Шаблон проектирования Блокировка с двойной проверкой Double checked locking Описан в Design Patterns Нет Double checked locking (блокировка с двойной проверкой) шаблон проектирования, применяющийся в параллельном программировании. Он… …   Википедия

  • Декоратор (шаблон проектирования) — У этого термина существуют и другие значения, см. Декоратор. Шаблон проектирования Декоратор Decorator …   Википедия

  • Scheduler — Шаблон проектирования Планировщик Scheduler Описан в Design Patterns Нет Планировщик (англ. Scheduler)  шаблон проектирования, обеспечивающий механизм реализации политики планирования, но при этом не зависящий ни от одной… …   Википедия

  • Строитель (шаблон проектирования) — У этого термина существуют и другие значения, см. Строитель. Шаблон проектирования Строитель Builder Тип: порождающий Описан в Design Patterns Да Строитель (англ. Builder)  п …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»