2015-03-22 6 views
0

В многослойном приложении, какое место подходит для DTO (объекты передачи данных)? Существует такое мнение, что DTO предназначен для уровня хранения данных для связи домена, но не подходит для взаимодействия уровня домена с верхним логическим уровнем.Правильное место DTO в многослойном приложении

Я деблокирую приложение со следующими слоями: хранение данных, домен, сервис, презентация. Тогда как правильно подключить сервисные и презентационные слои? Я предполагаю, что открытие доступа к объектам домена из-за пределов уровня домена является нарушением инкапсуляции, поэтому единственный способ решить задачу - использовать DTO, но я не уверен.

ответ

0

Многие люди (особенно энтузиасты DDD) говорят, что DTO предназначены только для удаленного вызова, в основном для инкапсуляции этих удаленных объектов.

Это, как говорится, я действительно предпочитаю отделять свой уровень презентации от уровня обслуживания как можно яснее. Уровень представления требует много изоляции от уровня обслуживания. Особенно с более толстыми клиентами, являющимися новой нормой (Угловые веб-сайты, мобильные устройства и т. Д.). Это означает, что обработка вашего уровня обслуживания как удаленного сервиса часто является хорошей инвестицией. В любом случае, это может стать истинным удаленным интерфейсом.

Граница UI/Service также обычно является местом, где обычно наиболее сложно определить разбивку по контракту ... Большинство инфраструктур пользовательского интерфейса делают ужасную работу по выявлению нарушений.