Подтвердить что ты не робот

В DDD, каковы фактические преимущества объектов ценности?

Я до сих пор понял, что я понимаю, что объекты объектов имеют идентификатор, а объект значения - нет, но в наиболее распространенном примере у вас есть объект-человек, к которому прикреплен объект значения адреса. В чем преимущество создания отдельного адресного объекта вместо сохранения свойств адреса в объекте Person?

4b9b3361

Ответ 1

В дополнение к уже упомянутым вещам, Грег Янг делает большой вывод из того, что, поскольку они неизменяемы, вы можете их проверить на создание и никогда не беспокоиться о проверке снова. Если состояние не может быть изменено, вы всегда знаете, что оно действительно.

Ответ 2

  • Объекты Value могут использоваться как аргументы для других методов в других классах
  • Это может сделать ваш дизайн более четким.
  • Это может помочь в оптимизации производительности (пример: шаблон fly-weight)
  • Объекты Value могут использоваться повторно в разных объектах. (пример: пользовательские и локальные объекты с объектами значения адреса.

Не забывайте, что "не имеющий идентификатора" не является единственной разницей между объектами ценности и объектами, неизменяемым также очень важно.

Ответ 3

Подумайте об этом как о компоненте многократного использования. Вы можете внести его в домашний адрес, рабочий адрес без особых дополнительных усилий. Вы можете использовать его для развязки других систем от лица. Скажите, что вы вводите бизнес-объект. Он также будет иметь адрес.

Связанный с этим предметом другой важный вопрос: состав против наследования