Имеет ли смысл создавать подмножества Entity, если вы считаете их использование в приложении по-разному? IE. Я беру свою сущность и определяю новую сущность только с некоторыми атрибутами первого. Теперь у меня есть 2 объекта, которые перекрываются, но используются по-разному, но в конечном итоге сохраняются в одинаковых данных. Эти объекты будут доступны через разные репозитории ...Разбивка объектов на небольшие объекты в DDD?
ответ
Я только начинаю узнавать о DDD, поэтому, если я ошибаюсь, прокомментируйте и дайте мне знать. Вот мои мысли:
Если объект будет доступен через другой репозиторий, я думаю, что он заслуживает своего собственного класса. Кроме того, биты, которые перекрываются в настоящее время, могут не перекрываться в будущем, и если вы используете общий базовый класс, вероятно, вы с большей вероятностью попытаетесь адаптировать вещи в этот момент, что загрязнит ваш домен.
Если два класса являются частью отдельных поддоменов, они, вероятно, должны быть отдельными. Мои мысли основаны на некоторых примерах, которые я помню в Rob Connery's interview on Hanselminutes. Продукт имеет несколько свойств, которые важны для потребителей (цены, описание и т. Д.) И несколько свойств, которые важны для персонала склада (местоположение на складе, вес, размеры и т. Д.). Примером для меня в этом эпизоде было то, что два продукта должны определяться отдельно в домене, а не определяться один раз и совместно использоваться.
Если «использование в приложении» означает, что вы будете отображать разные части в разных представлениях, то я бы предложил использовать шаблон представления, например, как описано в его Presentation Model (или если вы разрабатываете приложение WPF, вы можете используйте более специализированную версию WPF под названием Model-View-ViewModel (MVVM)).
Но если вы используете «использование», вы будете использовать разные атрибуты объекта в разных поддоменах или части вашего домена, тогда я соглашусь с Крисом; Вероятно, вам лучше было бы разбить их на разные сущности. Причина в том, что в вашей модели домена вы должны отразить, как объект используется в этом конкретном (под) домене. И если вы используете разные части сущности при разных обстоятельствах, они, вероятно, имеют разные значения в этих настройках, которые снова должны отражаться в наименовании объектов. И если бы это был я, я бы, вероятно, создал один репозиторий для каждой из сущностей. Имея сопоставление 1: 1 между объектами и репозиториями, кажется, имеет смысл в большинстве случаев, насколько я понял. Но затем снова; как Крис, Роб Конэри и 90% разработчиков, пытающихся сделать DDD; Я довольно новичок в DDD-игре, и поэтому мой опыт может быть отменен кем-то более опытным :)
- 1. Разбивка проекта на небольшие задачи
- 2. Нулевые объекты в DDD
- 3. DDD Ссылки на дочерние объекты
- 4. DDD-разделение объектов домена и объектов EF
- 5. Обобщение общих объектов в DDD
- 6. Обновление связанных объектов DDD
- 7. Сохранить связанные объекты в DDD
- 8. Как вложить объекты в DDD
- 9. DDD: подклассы и корневые объекты
- 10. DDD Значение объектов
- 11. Моделирование доменов, объекты домена в DDD
- 12. где создавать простые объекты/объекты объекта? DDD
- 13. DDD "Просмотр объектов"?
- 14. DDD Агрегаты и объекты значений
- 15. DDD: Запросить дочерние объекты агрегированного корня
- 16. DDD: Где создавать объекты сущностей?
- 17. небольшие проблемы понимания объектов (Java)
- 18. DDD: организация 100 свойств объектов на объекте
- 19. DDD: Как обрабатывать объекты «view»
- 20. DDD, ссылающийся на дочерние объекты по ограниченным контекстам
- 21. Где объекты ценности поступают из DDD?
- 22. DDD, связанные объекты в отношениях основных деталей
- 23. DDD - изменения дочерних объектов в совокупности
- 24. Следует переопределить Object.Equals для объектов (в DDD)?
- 25. В DDD как передать объекты значения через DTO?
- 26. DDD - Совокупные корни и создание поведенческих объектов
- 27. ddd - Создание и рефакторинг полей идентификации объектов
- 28. ddd - Как правильно идентифицировать объекты ценности?
- 29. DDD: Хранилища хранятся в памяти объектов?
- 30. Объекты DDD для многозадачности бизнес-процесса?
Это была моя склонность – zsharp