Entity сохраняет идентичность и может менять состояние. Value Object обычно проектируют неизменяемым: изменение значения выражают созданием нового объекта.
Кто из них (Entity или Value Object) может изменяться, а кто — нет?
Entity сохраняет идентичность и может менять состояние. Value Object обычно проектируют неизменяемым: изменение значения выражают созданием нового объекта.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Entity сохраняет идентичность и может менять состояние. Value Object обычно проектируют неизменяемым: изменение значения выражают созданием нового объекта.
При этом изменяемость не является единственным критерием Entity: можно реализовать сущность технически immutable, сохранив её идентификатор между версиями. Основное различие — идентичность против равенства по значениям. Неизменяемость Value Object упрощает совместное использование, сравнение и хеширование, предотвращая скрытые изменения в других частях модели.