Интернет магазин китайских планшетных компьютеров



Компьютеры - Model-View-Controller - Концепция

11 мая 2011


Оглавление:
1. Model-View-Controller
2. Назначение
3. Концепция
4. Наиболее частые ошибки



Концепция MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента:

  • Модель. Модель предоставляет знания: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать.
  • Представление, вид. Отвечает за отображение информации. Часто в качестве представления выступает форма с графическими элементами.
  • Контроллер. Обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем, и использует модель и представление для реализации необходимой реакции.

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

Для реализации схемы Model-View-Controller используется достаточно большое число шаблонов проектирования, основные из которых Наблюдатель, Стратегия, Компоновщик.

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



Просмотров: 3990


<<< Fluent interface
Model-View-Presenter >>>