Я работаю на довольно стандартном веб-сайте электронной коммерции, где есть Продукты и Категории. Каждый продукт имеет связанную категорию, которая представляет собой простой объект пары имя-значение, используемый для категоризации продукта (например, элемент 1234 может иметь категорию «баллон»).
Я смоделировал продукт как корневой агрегат, который владеет и знает, как изменить его категорию, которая является объектом.
Однако я столкнулся с проблемой, когда пользователь должен иметь возможность искать категорию. Как я должен реализовать это в DDD? Я новичок в DDD, но я считаю, что только корневые агрегаты должны иметь свой собственный репозиторий. Так что у меня остается 2 варианта:
- Добавить метод SearchCategory в ProductRepository
- Реализация логики поиска как службы (т. Е. CategoryFinderService)
Лично я считаю вариант 2 более логичным, но кажется странным иметь службу, которая касается базы данных. Почему-то мне кажется, что только хранилище может взаимодействовать с базой данных.
Может кто-нибудь сказать мне, как лучше всего это реализовать?