Я составил совокупный класс с именем Question
. Здесь ссылаются на Answer
, Category
, Feedback
объектов. Должен ли QuestionRepository быть класс, содержащий все методы, запрашивающие базу данных, связанную с Вопросом, а также все методы запроса обратной связи, ответа и т. Д.? Или они должны быть отдельными классами, такими как QuestionRepository, FeedbackRepository и т. Д.Агрегатный объект в DDD
ответ
От DDD web site:
Для каждого тип объекта, который нуждается в глобальном доступе, создать объект , который может обеспечить иллюзию коллекции в памяти всех объектов этого типа.
Репозиторий используется, когда вам необходим прямой доступ к сущности, т. Е. Когда нет другого удобного способа получить этот объект, кроме того, что он непосредственно извлекает его из постоянного хранилища. Напротив, если вы считаете, что объект в большинстве случаев легко доступен через обход другого объекта, который у вас уже есть, тогда нет необходимости в репозитории. Это похоже на ответ, категория и отзывы здесь.
Обычно репозитории предназначены только для совокупных корней, хотя могут быть исключения.
Предлагаю вам прочитать синюю книгу DDD или какой-либо учебник, чтобы получить базовое представление о строительных блоках DDD, прежде чем вы начнете строить свою модель домена.
От того, как вы объяснили, я предполагаю, что каждый вопрос будет иметь 1 или больше ответов, 1 или больше Обратной связи и вопрос относится к определенной категории
Поскольку ответ и обратная связь зависит от вопроса и не может существовать независимо, у вас может быть один QuestionRepository для этих трех объектов.
Приходя к категории, категория является более статичного объекта, который ИМО является статическим, поэтому все такие статические объекты могут быть сгруппированы вместе в StaticRepository
Вы правы в вопросе отношений. Но у меня есть представление, в котором перечислены все, например. Обратная связь, тогда, когда вы нажимаете строку «Обратная связь», вы увидите обратную связь, а также вопрос, к которому она относится. Должен ли я затем запрашивать QuestionRepository? – LuckyLuke
Да и он должен вернуть упрощенную модель, подходящую для модели представления. – MikeSW
Итак, даже если это не вопрос, который я возвращаю из метода (это обратная связь), метод для этого должен быть в QuestionRepository, потому что Feedback не живет сам по себе? Он по-прежнему связан с вопросом, даже если вы проходите через свойство отношений. – LuckyLuke
- 1. DDD Каков корень Агрегатный корень?
- 2. DDD: Агрегатный корень, доступ к которому осуществляется другим агрегирующим корнем
- 3. DDD: Классифицировать объект объект/значение
- 4. DDD - Объект переход состояния
- 5. Является ли объект DDD скрытым в моем объекте Value DDD?
- 6. DDD: статус - значение Объект или объект?
- 7. DDD Lookups как объект или объект Value
- 8. DDD-Агрегатный корень/В этом случае мне нужна внутренняя сущность локальной идентификации?
- 9. DDD - внедрение службы конфигурации в объект
- 10. Как смоделировать объект, подобный шаблону, в DDD?
- 11. DDD: удалить в репозитории или удалить объект?
- 12. Объект Value в объекте Value [DDD]
- 13. DDD: нормально ли вводить репозиторий в объект?
- 14. Несколько непонятных вещей о фабриках в DDD
- 15. Реализовать Джанго агрегатный объект, который не отображается в базе данных
- 16. DDD. Можно ли перенести мой объект значения в объект?
- 17. Джанго множественным существует() агрегатный
- 18. DDD - как регидратации
- 19. DDD, PHP. Объект домена и бизнес-логика
- 20. DDD - объект Value Value from Entity
- 21. DDD-объект, разделяемый между двумя приложениями
- 22. Объект vs Object_id injection in ddd
- 23. Агрегатный корень, включающий огромное количество детей
- 24. DDD: подклассы и корневые объекты
- 25. DDD: Может ли Агрегатный корень быть сущностью внутри другого сводного корня?
- 26. DDD: Объекты подключения - объект объекта или объект значения?
- 27. Нулевые объекты в DDD
- 28. Создаете ли вы агрегатный объект при создании корневой сущности?
- 29. Монго агрегатный $ группа выпуск
- 30. Использование счета без агрегатный
Но я хочу получить все отзывы, а затем перейти от обратной связи к вопросу, который он прилагает. Должно ли хранилище вопросов извлекать объекты обратной связи? – LuckyLuke
Я бы избежал обращения к репозиторию Question Feedback. Если обратная связь действительно является одной из основных точек входа в приложение (т. Е. На экране отображаются только обратные связи без их вопросов, пользователь может искать отзывы с подробными критериями ...), я бы дал ему свой собственный репозиторий и, возможно, даже сделал это Агрегатный корень. Я думаю, это сводится к «будет ли когда-нибудь иметь смысл иметь обратную связь без его вопроса?» – guillaume31
Обратная связь всегда связана с вопросом. Тем не менее, я хочу перечислить все обратные связи в системе на свой взгляд (между прочим), и когда пользователь нажмет кнопку «Обратная связь», он отобразит соответствующий вопрос. – LuckyLuke