DDD наименование: доменный объект - PullRequest
0 голосов
/ 13 апреля 2020

Рассмотрим некоторые виды участвующих объектов. Проект, управляемый доменом (DDD): объекты, объекты-значения, события домена и доменные службы.

Какие из них считаются Объектами домена ? И есть ли другие названия для абстракций, которые инкапсулируют их подмножество?

Я могу выделить различные абстракции, которые полезно иметь, когда речь идет о DDD или моделях доменов:

  • Сущности и объекты-значения. Я часто упоминаю "Сущности или объекты-значения". В частности, это те, которые моделируют состояние домена. В отличие от этого, доменные службы не имеют состояния, и я бы сказал, что события домена просто отражают информацию о состоянии домена в его текущем состоянии.

  • Сущности, объекты-значения и события домена. Все они могут содержать или представлять данные, тогда как доменные службы определяют только поведение.

  • Все объекты, распознаваемые доменом модель. Полезно иметь возможность говорить о частях модели предметной области в целом, в отличие от концепций вне ее.

Интересно, как даже переполнение стека domain-object у тега есть сбивающее с толку определение:

Доменные объекты - это объекты, созданные для работы с доменными логами c на уровне модели. Эти объекты обычно имитируют реальные (или виртуальные) предметы из реальной жизни: Person, Post, Document и т. Д. c.

Первоначальное определение, сфокусированное на "работе с доменными логами c "склоняется к" всем объектам, распознаваемым моделью предметной области ". Затем примеры склоняются к «сущностям и объектам значений».

DDD бьет по четко определенному, недвусмысленному вездесущему языку и по уважительной причине. Разве это не должно подавать пример? :)

1 Ответ

0 голосов
/ 13 апреля 2020

Какие из них считаются объектами домена?

Все они. Это «объекты», которые реализуют нашу модель предметной области. В оригинальном тексте DDD Эри c Эванс также использовал фразу «элементы модели».

Различия между ними в значительной степени являются следствием ограничений языка Java. Вам бы не понадобились «объекты-ценности», если бы вы могли просто создавать заказные значения; вам бы не понадобились «доменные сервисы», если бы вы могли просто передать нужные вам возможности. Вам не понадобятся «доменные события», если у вас есть «обмен сообщениями» в качестве вездесущей конструкции и т. Д. , Разве это не должно подавать пример? :)

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

Тем не менее ... да - было бы лучше сегодня, если бы Эванс хорошо разбирался в этих идеях восемнадцать лет go и смог бы представить лучший язык и обеспечить контрмеры для предотвращения распространения semanti c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...