В MVP (или любой другой архитектуре), где происходит преобразование данных? - PullRequest
0 голосов
/ 12 мая 2011

У меня есть приложение MVP, которое имеет следующие слои:

  • Презентация
  • Сервис
  • Бизнес
  • Данные

Между уровнями представления и обслуживания я использую DTO.

Допустим, я получаю данные из базы данных, используя L2S или EF.Я получаю тип данных, который может быть int или datetime и т. Д. Но уровень представления нуждается в нем в виде строки или в определенном формате.Где именно это происходит?

Служба это делает?DTO?Ведущий?В каком-то другом месте?

Ответы [ 2 ]

0 голосов
/ 12 мая 2011

Но для уровня представления это необходимо в виде строки или в определенном формате.

Если для уровня представления (UI) требуется , то в определенном формате (в противном случае он не может взаимодействовать), тогда у вас нет другого выбора, кроме как преобразовать его - но преобразование, скорее всего, зависит от пользовательского интерфейса;в таких случаях наилучшим вариантом (для обеспечения гибкости / разделения проблем) будет создание специального адаптера / прокси / фасада пользовательского интерфейса (который выполняет преобразование), который находится между пользовательским интерфейсом и везде, где он получает свои данные.

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

Возможная тонкость, которую я прочитал в вашем вопросе, состоит не в том, что пользовательский интерфейс требует его в определенном формате, а в том, что мы должныскажем "сильно предпочитает" это в определенном формате;в этом случае вы бы встроили адаптер / прокси в пользовательский интерфейс.

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

0 голосов
/ 12 мая 2011

Существует два типа преобразования.

Там происходит преобразование поля базы данных в полезный объект модели данных (возможно, на вашем бизнес-уровне), а также преобразование данных вашей модели в какой-то объект представления.

Первое будет преобразовывать поле BIT в базе данных в Boolean в вашей модели.

Последний будет преобразовывать DateTime в видимую строку в вашей презентации.

Эти два преобразования происходят в точке извлечения данных и в точке представления представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...