6. Архитектура MVC
Название:
«Модель-ПредставлениеПоведение» (Model-view-controller)
Автор: Трюгве Реенскауг (1979 год)
Цель: Обеспечение пользователя
интерфейсом для манипуляции над многими
вариантами отображения данных, как
сущностей реального мира
Идея: Разделение данных приложения, ПИ и
управляющей логики на три отдельных
слабосвязанных компонента: модель,
представление и поведение (контроллер).
6
7. Компоненты MVC
Модель
предоставляет данные предметной
области представлению и реагирует на команды контроллера, изменяя свое состояние.
Представление отвечает за отображение
данных предметной области пользователю с
помощью любых доступных визуальных и не
визуальных средств.
Контроллер интерпретирует действия пользователя, оповещая модель о необходимости
изменений.
7
8. Типы моделей MVC
Пассивная
модель не осведомлена о существовании представления, контроллера, и даже
о своем участии в MVC-триаде. Контроллер
отслеживает изменения модели и оповещает
представление.
Активная модель «знает» о существовании
представлений и о том, что они должны
обновляться. Активность модели проявляется
в её праве самостоятельно оповестить представление об изменении своего состояния.
8
9. Общая модель архитектуры
MVC с активной моделью
Модель
запрос текущего
состояния
оповещение
об изменении
состояния
выбор представления
(при необходимости)
Представление
изменение
состояния
Поведение
оповещение о действиях пользователя
9
10. Архитектура MVP
Название:
«Модель-ПредставлениеПрезентатор» (Model-View-Presenter)
Автор: Майк Потел, Taligent Inc. (1996 год),
переработано Dolphin Smalltalk.
Цель: Интеграция концепций MVC в
современные средства разработки ПО
Идея: Выделение данных, спецификации данных, манипуляции над данными, координации приложения, взаимодействия с пользователем и визуализацию в специализированные
компоненты.
10
11. Компоненты MVP
Модель
отвечает за данные и бизнес-логику
приложения.
Представлением является визуализация
модели (включает в себя окна и элементы
управления, используемые в приложении).
Реализуется как интерфейс, который может
быть использован для получения и установки
данных модели.
Презентатор реализует логику отображения
данных модели пользователю, управляет
моделью и представлением.
11
12. Общий вид архитектуры MVP
(версия от Dolphin Smalltalk)
Модель
(Domain model)
изменение
состояния
описание состояния
модели
Представление
Презентатор
оповещение о действиях пользователя
12
13. Основные отличия MVP от
MVC
Модель не общается с представлением даже опосредовано, через механизм оповещений, как это
реализовано в MVC с активной моделью.
Передача данных о состоянии модели в представление, а также изменение этого состояния реализуются
через презентатор.
Перехват сообщений пользователя выполняет представление, передавая его затем в презентатор.
Взаимодействие представления и презентатора
реализуется через специальный интерфейс, а не
напрямую через вызов методов класса-презентатора.
13
14. Архитектура PAC
Название:
«Представление-АбстракцияУправление» (Presentation-AbstractionControl)
Цель: Построение иерархии компонентов
Идея: Организуется иерархия взаимодействующих программных модулей (агентов).
Каждый агент реализует собственный аспект
функциональности приложения и представляет собой триаду из представления, абстракции (модели) и управления.
14
15. Архитектура HMVC
Название:
«Иерархический MVC»
(Hierarchical Model-View-Controller)
Цель: Построение иерархии компонентов
Идея: В PAC агенты взаимодействуют только
через управление, а HMVC позволяет представлениям, контроллерам и моделям различных агентов связываться непосредственно
друг с другом, выстраивая независимые
иерархии.
15
16. Вопрос 2
Удобство взаимодействия человека с
программной во многом зависит
от качества её справочной системы.
Реализация справочной системы для
программ и для web-сайтов, как правило,
различается.
16
17. Базовые компоненты
справочной системы
Базовая справка – сущность и назначение системы
Обзорная справка – реклама пользователю функций
системы
Справка предметной области
Процедурная справка – отвечает: «Как это сделать?»
Контекстная справка – отвечает: «Что это делает?»
и «Зачем это нужно?»
Справка состояния – отвечает: «Что происходит в
настоящий момент?»
Сообщения об ошибках – отвечает: «В чём заключается проблема?», «Как исправить эту проблему
прямо сейчас?», «Как сделать так, чтобы проблема не
повторилась?»
17
18. Носители справочной
информации
Бумажная
книга
– Легко позволяет читателю получить большой
объём материала за один сеанс, наилучшим
образом работает при последовательном чтении.
– Сравнительно плохой поиск нужных сведений.
– Объём практически всегда лимитирован.
Справочная
карта – краткий бумажный
документ об основных способах работы с
системой
– Компактна, легкодоступна.
– Хороша как средство обучения «продвинутым»
способам взаимодействия с системой.
18
19. Носители справочной
информации
Структурированная электронная документация
– Плохо приспособлена для чтения больших объёмов
материала.
– Обеспечивает легкий поиск и не имеет лимита объёма.
– Занимает большой объём пространства экрана.
– Плохо подходит для показа крупных изображений, зато в
неё могут быть легко интегрированы видео и звук.
Фрагменты пространства интерфейса, показывающие
справочную информацию
– Постоянно занимают некоторое пространство экрана.
– Отвлекают внимание и, как правило, неспособны передавать
большой объём информации.
19
20. Носители справочной
информации
Всплывающие
подсказки
– Хорошо справляются с ответом на вопросы «Что
это такое?» и «Зачем это нужно?» при условии,
что объём ответов сравнительно невелик.
– Поскольку вызываются пользователями вручную,
в обычном режиме не занимают пространства
экрана и не отвлекают внимание.
– Очень легко вызывают отвыкание, после первого
же случая неудовлетворения пользователя подсказкой, пользователь перестаёт вызывать и все
остальные подсказки.
20
21. Контрольные вопросы
Поясните значение термина «архитектура
пользовательского интерфейса».
Опишите суть архитектуры MVC.
В чём состоит основное различие между
архитектурами MVC и MVP?
Опишите основные достоинства
иерархических архитектур ПИ.
Какие компоненты справочных систем вам
известны? Проиллюстрируйте свой ответ на
примере распространённых программных
систем.
21