Каковы отношения между DDD и “Луковой Архитектурой”?

Каковы отношения между Управляемым доменом дизайном (DDD) и "Луковой Архитектурой" Jeffrey Palermo?

35
задан ulrichb 21 March 2014 в 17:59
поделиться

2 ответа

На мой взгляд - они дополняют друг друга, но с очень разных точек зрения.

Луковая архитектура - это сделать домен / бизнес-логику независимой от «второстепенных» вещей, таких как доступ к данным, пользовательский интерфейс, службы и т. Д. Луковой архитектуре на самом деле не важно, как вы создали домен, который у вас есть - она ​​непреклонна в отношении его защиты. от внешних зависимостей.

Домен-ориентированный дизайн - это то, как вы моделируете свой домен и то, что вы называете своими объектами. Это означает, что каждый класс домена должен иметь прямое отношение к тому, что он представляет в бизнес-домене, к которому он обращается (т. Е. Физический / реальный мир). Таким образом, объект Customer должен называться Customer в коде - он должен иметь те же правила, что и Customer в реальном мире (или насколько это возможно).

24
ответ дан 27 November 2019 в 07:14
поделиться

Если вы посмотрите на изображение, описывающее луковичную архитектуру в предоставленной вами ссылке, то DDD фокусируется на слое Domain Model .

Onion - это архитектурный шаблон для системы, тогда как DDD - это способ спроектировать подмножество объектов в системе. Эти двое могут существовать друг без друга, поэтому ни один из них не является подмножеством другого. Если бы вы использовали их вместе - тогда в целом часть, разработанная с использованием DDD, была бы подмножеством всей системы.

Используя (вероятно, плохую) аналогию: лук - это образец для проектирования дома, а DDD - это способ фрезерования древесины, которая является частью дома.

29
ответ дан 27 November 2019 в 07:14
поделиться