BonBonSlick
@BonBonSlick
Vanilla Web Architect

Можно ли хранить Value Object внутри Value Objecta?

Рассматриваем VO в контексте, архитектуры DDD.
К примеру сущность Юзер обладает ВО Адресс и в нем есть ВО Дом в котором поля квартира и етаж.
Первое что приходит на ум то, что так нельзя делать т.к. для обновления Дом надо удалить так же родительский ВО.

Какие принципы нарушены?
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
@vabka
Токсичный
Вы путаете два термина. Я так понял, вы тут противопоставляете ValueObject и Entity из DDD.

ValueObject - это некоторое значение, которые не существует само по себе в предметной области. (например адрес). Для ValueObject, обычно, не заводят отдельную таблицу в БД.

Entity - это некоторая модель объекта предметной области (например здание)

На примере адреса и здания:
Адрес состоит из названия улицы и номера дома. Название улицы и номер дома - это тоже ValueObject-ы
Здание имеет некоторый идентификатор и набор атрибутов, которыми могут быть ссылки на другие сущности, а могут быть значения - например тот же адрес.

А теперь к вашему примеру:
ВО Адресс и в нем есть ВО Дом в котором поля квартира и етаж.

Тоесть получается
Пользователь:
- Адрес:
- - Дом:
- - - Квартира
- - - Этаж

Лично мне кажется, что это неправильная иерархия. Правильнее было бы сделать плоскую структуру.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы