2013-03-31 2 views
0

Я разрабатываю приложение на стороне сервера на основе DDD.Дизайн создания DDD-объекта

У моей прикладной службы (wcf layer) есть метод, который получил XML от клиента. Этот XML должен быть обработан и, наконец, преобразован в объект.

В таком случае, где лучше всего разместить логику преобразования данных? Внутри модели домена?

Пример:

void OnRequestArrived(string xml) 
{ 
    ItemRequest request = ItemRequest.New(xml); 
} 

или в отдельной службы домена?

void OnRequestArrived(string xml) 
{ 
    ItemRequest request = _mappingService.Map(xml); 
} 

ItemRequest объект, то основная модель предметной области для бизнес-потока ..

Благодаря

ответ

0

Эта ответственность принадлежит к службе WCF. В терминах DDD это уровень защиты от коррупции - он сопоставляет внешние модели с моделью домена под рукой. Модель домена должна быть защищена от внешних служб как можно больше.

Иногда это может быть удобно разбить эту одну службу WCF в двух - служба приложений и WCF конкретных adapter который бы адаптировать службу приложений в рамках WCF. Это основано на Hexagonal architecture. Служба приложений ничего не знает о форматах WCF или сериализации. Служба адаптера WCF обрабатывает эту и другие проблемы сериализации. Это может быть полезно по двум причинам. Во-первых, он держит ваше приложение чисто и сосредоточено на его ответственности - оркестровка доменных объектов, репозиториев и других служб для реализации случаев использования домена. Во-вторых, он позволяет вызывать одну и ту же службу приложений из разных адаптеров.

Смежные вопросы