Дизайн, управляемый доменом - Как использовать объект значения в пользовательском интерфейсе - PullRequest
2 голосов
/ 23 января 2010

Мне было интересно, как вы используете вашу модель DDD в веб-приложении. В приложении Eric Evan Cargo есть класс Cargo , который содержит объект значения Маршрут . Внутри маршрута находится коллекция Legs , опять же объект значения. Все объекты значения скрывают суррогатный идентификатор для внешнего мира. Таким образом, при использовании этой доменной модели, как мне создать веб-приложение, в котором вы можете нажать на маршрут груза, перечислить все участки, а затем показать детали участка, перенаправив на новую страницу «Детали участка». Обычно я передаю LegId в полях запроса и снова зачитываю его на странице сведений. Но так как у него нет идентификатора, как бы вы это сделали?

Использовать индекс участка, который может измениться при сортировке коллекции?

Передача всех значений в полях запроса, так как это идентификатор объекта значения?

Звучит как шаг назад для меня:)

1 Ответ

1 голос
/ 23 января 2010

Если участок не имеет идентификатора, единственный способ обратиться к нему - через Cargo, который имеет идентификатор и, следовательно, может быть связан с URI / URL. Для ссылки на конкретный участок у вас есть только индекс, который может быть числом или словарным ключом. Если у вас есть проблемы с сортировкой, вы можете определить два списка: один с каноническим упорядочением для справочных целей, а другой с упорядочением, отображением позиции заказа и каноническим индексом.

Что касается причины, по которой объекты-значения в примере Эванса имеют идентификаторы, я думаю, что это для целей сериализации.

Конечно, вы также можете выбрать Маршрут / Ног с личностью.

...