Паттерн проектирования Immutable object (Неизменяемый объект) на PHP

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


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

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


Применение

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

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

Теги: Неизменяемый объект, Immutable object, Основные паттерны


Похожие статьи

Паттерн проектирования Functional design (Шаблон функционального дизайна) на PHP

Паттерн проектирования Interface (Интерфейс) на PHP

Паттерн проектирования Delegation (Делегирование) на PHP