Если следовать DDD-подобному стилю, можно ли дублировать существующую сущность с немного другими свойствами? - PullRequest
0 голосов
/ 26 октября 2011

Я пытаюсь применить некоторые DDD-подобные шаблоны к коду, который я пишу, чтобы использовать его в качестве примера того, как писать хороший код. У нас уже есть куча классов, которые представляют доменные объекты, но большинство из них «знают слишком много», и в них разбросаны логика, методы получения / установки и доступ к данным (в форме нетипизированных наборов данных).

Для этой части приложения мне нужно использовать тот же объект домена, но с небольшим подмножеством возвращаемых данных, что делает его громоздким использование «толстого» объекта (например, скажем, «толстый» объект имеет 20 свойства и методы, и мне нужно только работать с 7 свойствами для этой части). Допустимо ли для меня создание простого объекта в стиле DTO с тем же именем (конечно, в другом пространстве имен / пакете) только с теми свойствами, которые мне нужны? Кажется, я помню, что это была хорошая практика в мире DDD, но я не могу вспомнить наверняка (как я помню, что-то связанное с ограниченным контекстом), и я не хотел бы загрязнять свой дизайн.

1 Ответ

2 голосов
/ 26 октября 2011

Я бы с осторожностью отнесся к тому, чего вы пытаетесь достичь.Чтобы он был действительно управляемым доменом, ваши сущности должны быть богаты функциональными возможностями, а не «анемичной» моделью домена

Так что, если вы оказались в ситуации, когда вам «нужно использоватьтот же объект домена, но с небольшим подмножеством свойств ", что именно использует объект домена в этом сценарии.

Это просто используется в качестве DTO и передается другим классам менеджера, которые содержат фактическую функциональность.

Если это так, вы можете пересмотреть свой дизайн, чтобы увидеть, действительно ли он управляется доменом.

...