Я довольно новичок в WPF / MVVM и пытаюсь понять этот паттерн.Я изучаю это приложение MVVM http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
Автор создал Customer
класс, который хранится в папке Model
и CustomerRepository
класс, который хранится в DataAccess
папке
CustomerRepository
содержит методы, которые «делают вещи», например static List<Customer> LoadCustomers(string customerDataFile)
Т.е. мы не можем сказать, что CustomerRepository
- это чистый файл модели, это также своего рода служебный файл.
Из другой руки CustomerRepository
storeважные данные readonly List<Customer> _customers;
и мы знаем, что мы должны хранить такие данные в модели!
Ну, я бы сказал, что CustomerRepository
- это смешивание вещей - это файл модели, в котором содержатся некоторые служебные методы.
Проблема в том, что экземпляр CustomerRepository
передается в ViewModel public AllCustomersViewModel(CustomerRepository customerRepository)
.Теперь viewModel содержит то, чего не должно, в частности он может заставить CustomerRepository
перезагружать вещи и т.д.файлы моделей все служебные классы и методы для манипулирования файлами моделей должны быть в других местах .
Я прав или нет? Можно ли передавать класс, который предлагает некоторые услуги по модели (можно перезагрузить / обновить модель и т. Д.), В ViewModel? Т.е. где должен быть так называемый service layer
, нормально ли иметь его во ViewModel?