Значение инфраструктуры и кода приложения в доменно-ориентированном дизайне

На веб-сайте доменно-ориентированного дизайна я вижу:

Сконцентрируйте весь код, связанный с моделью предметной области, на одном уровне и изолируйте его от кода пользовательского интерфейса, приложения и инфраструктуры. Объекты предметной области, свободные от ответственности за отображение самих себя, сохранение себя, управление задачами приложений и т. д., могут быть сосредоточены на выражении модели предметной области. Это позволяет модели развиваться, чтобы быть достаточно богатой и ясной, чтобы фиксировать необходимые бизнес-знания и применять их в работе.

Что «входит» в код инфраструктуры? Означает ли это поддержку фреймворков (например, для ведения журналов)?

Я предполагаю, что «код приложения» означает объекты предметной области (то есть модель предметной области)?


person Ben Aston    schedule 20.01.2010    source источник


Ответы (1)


Код инфраструктуры может быть, например, реализацией репозиториев. У вас могут быть репозитории в памяти или Hibernate, которые находятся на уровне инфраструктуры, а их интерфейсы — на уровне домена.

Код приложения управляет объектами домена. Он определяет службы, которые принимают пользовательские команды и вызывают бизнес-логику для объектов предметной области, но на этом уровне нет бизнес-логики.

person Christophe Herreman    schedule 20.01.2010
comment
Итак, репозитории (в смысле шаблона проектирования, а не, как я понимаю, в смысле репозиториев в вашем ответе) обычно живут в модели предметной области или в отдельном компоненте доступа к данным? - person Ben Aston; 21.01.2010
comment
... и будут ли такие вещи, как контейнеры IOC, подсистемы ведения журналов и сбора метрик, обычно описываться как находящиеся на уровне кода инфраструктуры? - person Ben Aston; 21.01.2010