Я хочу создать облако тегов с использованием DDD, но для меня объект Tag - это V.O., но один V.O не может быть вставлен, отредактирован, загружен, потому что у него нет собственного репозитория. Как мне решить эту проблему? Я знаю, что могу сделать тег V.O в Entity, но это неправильно. Как мне решить эту проблему?
DDD - Облако тегов
Ответы (2)
Когда объект-значение начинает иметь идентичность и жизненный цикл, пора подумать о «продвижении» объекта-значения в объект домена.
В DDD объекты значений не могут существовать независимо от объекта домена. В вашем случае с тегами - да!
Нет особого смысла «продвигать» небольшой узел в качестве агрегированного корня, поскольку с этим агрегированным корнем не будет никакого поведения. В самом деле, что он будет делать?
Обычно вы не создаете тег, не так ли? Это не часть * вездесущего языка *. Обычно вы помечаете какой-то другой предмет тегом, верно?
То, о чем вы говорите - создание облака тегов - вероятно, является читаемой стороной дела. Вам не нужно читать модель предметной области. Вы просто создаете для него представления / постоянные модели представлений / проекции, а затем просто отображаете их в пользовательском интерфейсе. Для меня облако тегов - это явно проекция.
Вы можете прочитать старую статью о представлениях и DDD здесь: http://billhamaker.wordpress.com/2006/08/03/what-is-a-view-in-domain-driven-design/