Entity определяется устойчивой идентичностью, даже если её свойства меняются. Value Object определяется значениями: два объекта с одинаковыми значимыми полями считаются эквивалентными.
Что такое Value Object и Entity в Domain-Driven Design? Почему неизменяемость важна для Value Object?
Entity определяется устойчивой идентичностью, даже если её свойства меняются. Value Object определяется значениями: два объекта с одинаковыми значимыми полями считаются эквивалентными.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Entity определяется устойчивой идентичностью, даже если её свойства меняются. Value Object определяется значениями: два объекта с одинаковыми значимыми полями считаются эквивалентными.
Например, заказ остаётся тем же заказом после изменения статуса, а денежная сумма определяется величиной и валютой. Неизменяемый Value Object проще безопасно разделять, сравнивать и использовать как часть инвариантов: изменение выражается созданием нового значения. Это уменьшает неожиданные побочные эффекты от общих ссылок. Но сам по себе frozen-класс не гарантирует глубокой неизменяемости вложенных объектов; валидация должна выполняться при создании.