Рассмотрим эти два сценария:
- пользователь нажимает кнопку в представлении (например, Выполнить заказ ), и мы хотим, чтобы представление обновлялось немедленно (отключить кнопку, добавить индикатор выполнения и т. Д.)
- сервисный уровень вызывает бизнес-событие, которое в конечном итоге должно быть отражено в представлении (например, товара нет в наличии).
В обоих случаях законно требуется какой-то механизм X для обновления модели представления. С MVVM представление может сделать это, установив свойства модели представления в обработчике событий, через привязку команды или через какой-либо другой механизм.
Сервисный уровень может сделать это, используя некоторый механизм, Y . Например, создание событий в модели бизнес / домен, создание команд для управления моделью представления, вызов методов для модели представления и т. Д.
Фактически, X и Y могут быть одним и тем же механизмом (или шаблоном).
Что хорошего для этого, что соответствует духу MVVM, но СУХОЙ?