MVVM сводится к двум основным компонентам:
- Техническое обслуживание
- Тестируемость
Основные преимущества, которые вы получаете от шаблона MVVM:
- Все, что MVP / MVC приносит на стол
- Ваша модель представления (логика, лежащая в основе ваших представлений) легко тестируется, потому что вы можете создавать их экземпляры вне контекста системы WPF / Silverlight / ASP / независимо от того, что они (по сути, они POCO.
- Ваша логика отделена, поэтому вы можете легко заменить горячую логику за представлением с помощью IoC / DI или просто использовать другую модель. Смена кода в одной строке и все ваше поведение меняется.
При проектировании вашего приложения на основе MVVM довольно много накладных расходов, и лично я бы не рекомендовал его для небольших приложений, поскольку это может удвоить время разработки.
Однако, если вы планируете постоянно поддерживать / обновлять / расширять свое приложение и вам необходимо тестировать функциональность пользовательского интерфейса, это неоценимо. Это может сэкономить вам огромное время на большом рефакторе пользовательского интерфейса, если вы потратили время на правильную настройку в начале.
Я знаю, что это может не отвечать конкретно на ваш вопрос, но я чувствую, что эти моменты более актуальны для выбора шаблона MVVM.
Примечание: помните, что MVVM - это руководство, а не правило, вы можете нарушать его там, где это имеет смысл, просто не забывайте думать о последствиях этого