2. История Первое упоминание паттерна MVC в Smalltalk’80 Задача: архитектурное решение, которое позволяло бы манипулировать графическими представлениями данных приложения таким образом, чтобы изменение Представления этих данных не влияло на бизнес-логику и данные (Модель) приложения, а так же, чтобы была возможность иметь несколько Представлений для одной Модели.
3. Термины Model(модель данных) - бизнес логика вашего приложения; View(представление) – пользовательский интерфейс; Controller(контроллер) - содержит логику на изменение модели при определенных действиях пользователя;
4. Классический MVC Действия пользователя View Передача вызова Сообщение об изменениях Изменение модели Model Controller
6. Model – View – Presenter Действия пользователя Passive View Supervising Controller View Передача вызова Обновление Изменение модели Presenter Model Сообщение об изменениях
10. Model – View – Presenter Действия пользователя View Передача вызова Обновление Изменение модели Presenter Model Сообщение об изменениях
11. Model – View – ViewModel Действия пользователя View Передача вызова Обновление Изменение модели ViewModel Model Сообщение об изменениях
12. Реализация Магия Model (User,Repository) UserEditView UserEditViewModel Пользователь нажал Apply ExecuteSaveCommand() name = UserName; user.Name = name; repository.Save(user); TextBoxполучит актуальное значение
13. View ViewModel Задачи (View / ViewModel) Установка значений в соответствующие контролы Связь/взаимодействие с моделью Валидация измененных / новых данных Создание данных (из Модели) для отображения Визуализация контролов
14. BindingModel View BindingModel . . . Создание данных (из Модели) для отображения Валидация измененных / новых данных ViewModel . . Связь/взаимодействие с моделью Presenter