Member 13578639 Ответов: 0

Для экспертов MVVM о том, как работает MVVM


Насколько я понимаю, MVVM работает следующим образом:

Представьте, что у меня есть представление с кнопкой для расчета налога.

Это вызывает метод в модели представления,который обновляет налог в модели

затем модель выдает INotify для представления с надписью "налог обновлен".

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

---

эта последняя часть кажется дополнительным ненужным чем-то, что нужно сделать. Почему модель просто не Инотифицирует представление обновленным значением?

Или я что-то пропустил?

Что я уже пробовал:

погуглил для понимания и проверил объяснения здесь на проекте кода

JustWatchLittle

"Почему модель просто не Инотифицирует представление обновленным значением":
Потому что модель не имеет никакого представления о представлении

Member 13578639

но [как я понимаю] точка зрения также не имеет никакого знания о модели.

Модель знает достаточно, чтобы уведомить представление об изменении значения, почему бы не передать ему это значение одновременно, а не ждать, пока представление "запросит" это значение.

Dave Kreskowiak

Нет, модель знает достаточно, чтобы вызвать событие, о котором любой подписчик получит уведомление об измененном значении. Он ничего не знает о том, что подписано на него. Подписчик, в вашем случае представление, получает уведомление о событии, а затем самостоятельно определяет, следует ли перейти к получению нового значения или нет. Что делать, если значение не отображается в текущем режиме или находится "вне экрана" и не должно обновляться? Это зависит от вида, чтобы определить, а не для модели, чтобы заставить на вид.

0 Ответов