
3к6с Современные технологии интернет-программирования / Лекции / 3 Паттерны проектирования MVC, MVP, MVVM
.pdf

Общие сведения
Паттерн (англ. pattern — образец, шаблон,
система) — закономерная регулярность,
встречающаяся в природе и в человеческом дизайне, а также повторяющийся шаблон,
образец. Элементы паттерна предсказуемо
повторяются.
В компьютерных науках шаблоны
проектирования являются широко используемым решением большого класса
проблем программирования.
2

Общие сведения
Примеры паттернов в графике
3

Общие сведения
Наиболее типичная реализация паттернов в
программировании отделяет вид от модели, путем установления между ними протокола
взаимодействия, используя аппарат событий
(подписка/оповещение). При каждом изменении внутренних данных в модели, модель
оповещает все зависящие от неё представления, и представление обновляется.
Для этого используется шаблон проектирования
Наблюдатель.
4

Общие сведения
При обработке реакции пользователя, вид
выбирает в зависимости от нужной реакции нужный контроллер, который обеспечит ту или
иную связь с моделью. Для этого используется
шаблон проектирования Стратегия, или вместо этого может быть модификация с
использованием шаблона проектирования
Команда.
5

Общие сведения
А для возможности однотипного обращения с подобъектами сложно-составного
иерархического вида, может использоваться
шаблон проектирования Компоновщик. Кроме того, могут использоваться и другие шаблоны
проектирования, например, фабричный метод, который позволит задать по умолчанию тип
контроллера для соответствующего вида.
6

Общие сведения
Таким образом, схема использования нескольких шаблонов проектирования
разделена на три отдельных компонента, с
помощью которых модель данных приложения, пользовательский интерфейс и взаимодействие
с пользователем выполняют общую задачу. Данная концепция разработана в 1979 году для
языка Smalltalk.
7

Общие сведения
Passive Model (пассивная модель)
Модель не имеет вообще никаких способов воздействовать на Представление или
Контроллер и только используется ими в
качестве источника данных для отображения. Все изменения модели отслеживаются
Контроллером и он же отвечает за перерисовку
Представления, если это необходимо.
8

Общие сведения
Active Model (активная модель)
Модель имеет возможность оповестить Представление о том, что в ней произошли некие изменения, и Представление может эти изменения отобразить. Модель просто бросает сообщение, а Представления, которые заинтересованы в оповещении, подписываются на эти сообщения, что позволяет сохранить независимость Модели как от Контроллера так и от Представления, не нарушая
тем самым основного свойства паттерна. |
9 |
|

MVC
Model-view-controller («модель-вид-
контроллер») — схема использования
нескольких шаблонов проектирования, с помощью которых модель данных приложения,
пользовательский интерфейс и взаимодействие
с пользователем разделены на три отдельных компонента таким образом, чтобы модификация
одного из компонентов оказывала минимальное
воздействие на остальные.
10