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