Почему репозиторий отправляет в конструктор ViewModel? - PullRequest
0 голосов
/ 04 октября 2018

Я изучаю компоненты архитектуры Google с MVVM и заметил, что репозиторий отправляет конструктору ViewModel.Вопрос в том, почему хранилище не может существовать как свойство, поле в ViewModel?Некоторые разработчики создают Factories, где хранится репозиторий, и инициализируют его с помощью ViewModel.Что является причиной для этого?MVVM говорит, что View вообще не должен знать о Model.Итак, почему хранилище не просто остается на ViewModel как поле?

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Как правило, хранилище не изменяется в течение срока службы ViewModel.Предоставление его в качестве параметра объекта сжатия вместо свойства гарантирует, что оно не может быть изменено, и код в ViewModel может положиться на него.

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

0 голосов
/ 05 октября 2018

Это в целом плохая практика.Лучше вводить в ViewModel для лучшего тестирования.

...