Партийная роль и ограниченный контекст - PullRequest
2 голосов
/ 28 ноября 2011

Я пытаюсь использовать Party Place Thing и Роль архетипов из Java Modeling in Color.

Кроме того, я также стараюсь использовать лучшие практики DDD. Теперь предположим, что у нас есть 1 человек, который играет 2 роли Скажите «Клиент и пациент» в моем заявлении.

Роль «Заказчик» используется в ограниченном контексте CRM, а роль «Пациент» - в ограниченном контексте управления больницей.

Мои классы ролей могут получить доступ к деталям Person с помощью слабого идентификатора, объекта значения, который может однозначно представлять Person, подробности этого подхода можно найти здесь .

Теперь в архетипе Party Place Thing одной из указанных обязанностей является возможность перечисления ролей, выполняемых партией.

Как достичь этого, если роли существуют в разных ограниченных контекстах?

Так что в идеале Клиент и Пациент не должны существовать в том же Ограниченном контексте, что и Персона

1 Ответ

0 голосов
/ 09 марта 2012

Из того, что я понял, так как я задал вопрос, это то, что случаи, когда человеку (партии) нужно знать обо всех ролях, которые она играет, редки.

Какой инвариант был бы у человеканужно сохранить все роли, которые он играет?

Таким образом, в основном DDD сказал бы, что Person не нужно знать обо всех ролях, которые он играет в различных BC.

В моем примере выше, класс Customerв CRM BC будет знать о Человеке (партии), для которой он играет роль.

, а также класс пациента в ограниченном контексте управления больницей (HM) будет знать о Человеке (партии), для которогоэто играет роль.

Однако класс Person не будет знать ни о классе Customer, ни о классе Patient.

Фактически класс Person в BC CRM может сильно отличаться от класса Person в BC HM., основанный на UL (Ubiquitous Language).

И способ, которым эти классы Person из разных контекстов будут относиться друг к другу, использует программный идентификатор.

См. эту книгу здесь для более подробной информации.

Спасибо

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