Модель – вид – контроллер - Model–view–controller

Схема взаимодействий в шаблоне MVC

Модель – представление – контроллер (обычно известный как MVC ) - это шаблон проектирования программного обеспечения, обычно используемый для разработки пользовательских интерфейсов, которые разделяют логику связанной программы на три взаимосвязанных элемента. Это сделано для того, чтобы отделить внутреннее представление информации от способов, которыми информация представляется пользователю и принимается от него.

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

Компоненты

Модель
Центральная составляющая узора. Это динамическая структура данных приложения, не зависящая от пользовательского интерфейса. Он напрямую управляет данными, логикой и правилами приложения.
Вид
Любое представление информации, такое как диаграмма, диаграмма или таблица. Возможны несколько представлений одной и той же информации, например гистограмма для управления и табличное представление для бухгалтеров.
Контроллер
Принимает ввод и преобразует его в команды для модели или представления.

В дополнение к разделению приложения на эти компоненты, дизайн модель – представление – контроллер определяет взаимодействие между ними.

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

Как и другие программные шаблоны, MVC выражает «суть решения» проблемы, позволяя адаптировать ее для каждой системы. Конкретные проекты MVC могут значительно отличаться от традиционного описания здесь.

История

MVC стал одним из первых подходов к описанию и реализации программных конструкций с точки зрения их ответственности .

Трюгве Реенскауг представил MVC в Smalltalk -79 во время посещения Исследовательского центра Xerox в Пало-Альто (PARC) в 1970-х годах. В 1980-х Джим Альтхофф и другие реализовали версию MVC для библиотеки классов Smalltalk-80. Лишь позже в статье 1988 года в The Journal of Object Technology (JOT) MVC была выражена как общая концепция.

Впоследствии шаблон MVC развился, что привело к появлению таких вариантов, как иерархическая модель – представление – контроллер (HMVC), модель – представление – адаптер (MVA), модель – представление – презентатор (MVP), модель – представление – модель представления (MVVM), и другие, которые адаптировали MVC к разным контекстам.

Использование шаблона MVC в веб - приложениях взрыв популярности после введения NeXT «s WebObjects в 1996 году, который был первоначально написан в Objective-C (что в значительной степени заимствованы из Smalltalk) и помогли обеспечить соблюдение принципов MVC. Позже шаблон MVC стал популярен среди разработчиков Java, когда WebObjects был перенесен на Java . Более поздние фреймворки для Java, такие как Spring (выпущенный в октябре 2002 г.), продолжали прочную связь между Java и MVC. Внедрение фреймворков Django (июль 2005 г., для Python ) и Rails (декабрь 2005 г. для Ruby ), в обеих из которых был сделан сильный акцент на быстром развертывании, повысило популярность MVC за пределами традиционной корпоративной среды, в которой он давно стал популярным.

Использование в веб-приложениях

Первоначально разработанный для настольных компьютеров, MVC получил широкое распространение в качестве дизайна для приложений World Wide Web на основных языках программирования . Было создано несколько веб-фреймворков , обеспечивающих соблюдение этого шаблона. Эти программные фреймворки различаются по своим интерпретациям, в основном по способу разделения ответственности MVC между клиентом и сервером .

В некоторых фреймворках веб-MVC используется подход тонкого клиента, который размещает почти всю логику модели, представления и контроллера на сервере. В этом подходе клиент отправляет либо запросы гиперссылки, либо представления формы в контроллер, а затем получает полную и обновленную веб-страницу (или другой документ) из представления; модель полностью существует на сервере.

Смотрите также

использованная литература

Библиография