Передача бизнес-объекта модели предметной области в вопрос уровня пользовательского интерфейса - PullRequest
3 голосов
/ 16 сентября 2011

Допустимо ли передавать непосредственно сущность модели домена на уровень пользовательского интерфейса вместо соответствующей модели представления?

В моем примере пользовательский интерфейс получает некоторые пользовательские данные и передает их докладчику, который взаимодействует со службой домена.Доменная служба выполняет некоторые действия с данными пользователя и возвращает выходные результаты обратно в пользовательский интерфейс в виде объекта модели домена, который обычно должен быть преобразован в viewmodel.

Проблема заключается в том, что в зависимости от выбора пользователя (Y или N) проверяя возвращенный результат, он может быть возвращен обратно в службу для дальнейшей обработки и, наконец, сохранен в хранилище.

Если мы не сохраним возвращенную сущность домена где-то между этими двумя шагами, а используем viewmodel, мы не будембыть в состоянии передать его обратно для дальнейшей обработки.

Существуют ли обходные пути, когда происходит такое взаимодействие с пользователем?

Ответы [ 2 ]

1 голос
/ 18 сентября 2011

Я бы скорее рекомендовал отделить модель представления от модели домена либо с точки зрения модели представления (в MVVM), либо с точки зрения модели в MVC / MVP, потому что при средней и высокой сложности домена вы проектируете домен модель с точки зрения бизнес-логики и объектно-ориентированного проектирования, которая имеет уровень детализации, отличный от данных представления, когда вы связываете или представляете данные, вы склонны показывать часть модели предметной области и выравнивать некоторые объекты как континенты для представления.

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

1 голос
/ 17 сентября 2011

MVP определяется вокруг понятий View, Presenter и Model.Нет никакой причины, по которой вам нужно различать сущность домена и представление Model.Они могут (и должны) быть одним и тем же.

В отличие от MVVM, модель играет меньшую роль в привязке к View.Ответственный за управление представлением отвечает с использованием данных модели.В MVP не существует понятия ViewModel как такового.Этот термин обычно зарезервирован для MVVM, где ViewModel является сущностью, тесно связанной с View, в дополнение к наличию Model.

...