Короткий ответ, Да.
Более длинный ответ ...
Основные цели шаблона Model-View-ViewModel (MVVM):
- Разрешите модульное тестирование вашей логики представления.Это модульные тесты, применяемые к слою ViewModel, который выполняется без ассоциированного с ним View.
- Упрощение рабочего процесса разработчика и дизайнера за счет минимизации объема кода, связанного с вашими файлами XAML.
Шаблон MVVM также обеспечивает разделение задач между логикой представления и бизнес-логикой так же, как это делают MVC и их шаблон пользовательского интерфейса.Тем не менее, 2 пункта выше - это то, что действительно определяет шаблон MVVM.
Теперь подумайте о том, где вы располагаете свою бизнес-логику.Если вы поместите его в ViewModel, все еще действительны # 1 и # 2 выше?Да.Если вы поместите его в отдельный слой, действительны ли № 1 и № 2?Да.
Таким образом, в обоих случаях вы по-прежнему достигаете двух основных целей MVVM.Какой путь вы выберете, зависит от сложности вашего приложения и количества разработчиков, работающих над ним.По мере того, как увеличиваются оба этих фактора, вы получите три слоя ... или больше!