Технологическая часть, Обзор паттерна MVC - Разработка модуля для хранения и управления документами в электронном виде

Обзор паттерна MVC

Впервые описал схему Model-view-controller (Модель-вид-контроллер) Трюгве Реенскауг, норвежский ученый из университета в Осло, работавший в 1979 году над объектно-ориентированным языком программирования Smalltalk. Строго говоря, MVC является не паттерном, а схемой использования нескольких паттернов проектирования приложений.

Схема MVC состоит из объектов трех типов: модели, вида и контроллера.

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

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

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

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

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

Наблюдатель - поведенческий шаблон проектирования, предназначенный для создания зависимости между одним и несколькими объектами таким образом, что при изменении состояния основного меняется состояние зависимых. В MVC это реализуется в представлении и модели: при изменении модели меняются все ее виды.

Компоновщик - паттерн, предназначенный для компоновки объектов в древовидные структуры. При этом обращение к отдельному объекту и к составному неразличимо для клиентов. В классическом MVC этот шаблон используется при создании составных видов. Например, в окне приложения могут быть различные элементы управления, но каждый из них (включая само окно) имеет общий набор доступных действий (отрисовать, удалить, переместить и пр.)

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

Подход MVC нашел широкое применение в веб-программировании на различных современных языках. Схема MVC породила семейство веб-фреймворков, использующих ее в качестве основной архитектуры. Среди них можно выделить Ruby on Rails, Yii, Symfony, Zend Framework, Django и многие другие.

Похожие статьи




Технологическая часть, Обзор паттерна MVC - Разработка модуля для хранения и управления документами в электронном виде

Предыдущая | Следующая