В моем домашнем проекте я столкнулся с проблемой определения типа моего объекта домена.Является ли объект DDD скрытым в моем объекте Value DDD?
домена: Расписание автобусов
Кольцевые контексты: маршрутизации (инфраструктуры общественного транспорта, ctx1), расписание (планирование, ctx2)
Объекты:
станция - описывает автовокзал
Маршрут (ctx1) - набор станций (Маршрутные путевые точки)
Линия (ctx1) - описывает линию шины. Содержит список.
Расписание (ctx2) - названный набор отправлений с путевых точек маршрута.
Например: линии шины 25 имеет два маршрута [{ST1, ST3, ST20}, {ST20, ST15, ST3, st1}] и 2 графики (график 1 - маршрут 1, sch2- г2) прикрепленных к этим двум маршрутам.
без сомнений я определил линию и Город как субъекты DDD, агрегатные корни. Кроме того, я решил поместить маршруты в строки, потому что они не имеют смысла за пределами линии и их жизненного цикла == Жизненный цикл Line. Все еще выглядит хорошо.
Следующим шагом является определение объекта домена Расписания. Я хотел отделить его от инфраструктуры общественного транспорта, поэтому я поставил его в другом контексте как сущность. Проблема в том, что теперь мне нужно прикрепить его к маршруту, у которого нет идентификатора.
Мои идеи:
график введен в маршрут. Почему это не вариант: Линия становится толстой; создает ubercontext ctx1 и ctx2
Сделать маршрут лицом. Почему это не вариант (я думаю ...): хотя нетрудно представить маршрут с каким-то идентификатором (например, Name), вряд ли достаточно представить маршрут шины за пределами линии шины.
Возможно, я сделал что-то совершенно не так?
Вы сказали: '' 'и строка имеет расписания''' - это то, чего я хочу избежать. Я хочу, чтобы мой домен маршрутизации ничего не знал о домене расписания. Это означает, что объект «Расписание» должен иметь идентификатор маршрута. Но если 'Route' является сущностью в' Line Aggreate Root', я не могу ссылаться на него, пока он является частью Aggreate Root, и единственная возможная ссылка здесь - это связь между 'Schedule' и' Line'. Я прав? – ovnia
это все 1 большой домен (с возможно несколькими корнями совокупности). Но линия, маршрут и график кажутся очень взаимосвязанными. Ваше расписание/расписание зависит от маршрута. Поэтому я не вижу здесь 2 ограниченного контекста – Batavia
+1 Отличное редактирование, Батавия. Достаточно легко понять, как «мы» хотим, чтобы он был смоделирован, но ответ, скорее всего, уже присутствует, если заинтересовать участника. Элементы Вездесущего языка, скорее всего, предсказывают реализацию. Независимо от того, что имеет наибольший смысл с точки зрения развития, это должно быть обусловлено тем, как заинтересованные стороны это видят. Если это не так, это делает общение между командой разработчиков (которая включает в себя экспертов/заинтересованных сторон) сложнее. –