Решаете, передавать ли модель или репозиторий / сервис моей модели представления? - PullRequest
0 голосов
/ 05 августа 2010

Я часто сталкиваюсь с этим решением и постоянно колеблюсь, какой подход выбрать.

Во многих примерах MVVM модель передается в конструктор модели представления. Следовательно, каждая виртуальная машина связана с моделью. Логика для извлечения Модели и создания ВМ находится вне ВМ "где-то". Модель должна знать, как сохранить ее изменения.

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

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

1 Ответ

1 голос
/ 06 августа 2010

Модель представления обычно определяется как представление модели, т. Е. Существует для посредничества между моделью и представлением.Хотя вполне возможно иметь ViewModel, который является достаточно универсальным для передачи для нескольких типов Моделей, на практике все наоборот, и несколько ViewModel могут существовать для одного Типа модели, особенно в тех случаях, когда необходимо представить одну Модельпо-разному в разных частях приложения.

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

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