Model-View-Controller


На главную

К шаблонам проектирования также относят пришедшую из языка Smalltalk схему, которая известна под названием Model-View-Controller (модель-представление-контроллер).
В литературе встречаются два варианта описания этой парадигмы проектирования. Рассмотрим каждый из них:

1 вариант
В соответствии с этой трактовкой Model-View-Controller состоит из трех типов объектов:
  1. Контроллер - является посредником между моделью и представлением.
  2. Модель - обрабатывает полученные данные в соответствии с задачами, которые должно выполнить приложение. Здесь реализуются все основные алгоритмы программы.
  3. Представление - обеспечивает интерфейс с пользователем, т.е. используется для непосредственного ввода и вывода данных.
Взаимоотношение между модулями этой модели можно изобразить так:
Схема взаимодействия между модулями

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


2 вариант
В соответствии с этой трактовкой Model-View-Controller делится на 3 части:
  1. Контроллер - принимает входные данные.
  2. Модель - обрабатывает полученные данные в соответствии с задачами, которые должно выполнить приложение. Здесь реализуются все основные алгоритмы программы.
  3. Представление - выводит на экран (или другое устройство вывода) результат обработки данных.
Простейшая схема взаимодействия между тремя модулями для второго варианта:
Схема взаимодействия между модулями

При получении входных данных контроллер должен сообщить об этом модели. Модель обрабатывает данные. Получив результат, модель в свою очередь должна проинформировать об этом представление.
Иногда также возможна связь между контроллером и представлением (например, для того, чтобы сообщить пользователю об ошибке ввода).

С одной моделью может быть связано несколько представлений. Например, одни и те же данные могут быть представлены в виде текста, графика и диаграммы. При этом можно увеличивать количество представлений, не изменяя саму модель.


Заключение
Первая трактовка парадигмы Model-View-Controller более распространена в приложениях Windows, которые как правило обладают единым интерфейсом для ввода и вывода. Вторая трактовка может быть использована в системах, где ввод данных осуществляется с помощью внешних датчиков (например, измерители давления на метеорологической станции), а также при взаимодействии между приложениями или в распределенных системах (если они не обладают единым интерфейсом ввода/вывода).

Основное преимущество организации приложения в соответствии со схемой Model-View-Controller заключается в том, что такое приложение в дальнейшем легче модифицировать. Например, в случае изменения критериев вывода данных достаточно изменить модуль View, отвечающий за вывод информации. При этом модули Controller и Model останутся нетронутыми.

На главную

Rambler's Top100
Хостинг от uCoz