Справочник вопросов и ответов
QUOR - электронный справочник

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

Тег: Другие предметы
Шаблон проектирования программного обеспечения Схема взаимодействий в шаблоне MVC

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

Традиционно используется для настольных компьютеров графические пользовательские интерфейсы (GUI ), этот шаблон стал популярным для разработки веб-приложений. Популярные языки программирования, такие как JavaScript, Python, Ruby, PHP, Java, C# и Swift имеют инфраструктуры MVC, которые используются для разработки веб-приложений или мобильных приложений прямо из коробки.

Содержание

  • 1 Компоненты
  • 2 История
  • 3 Использование в веб-приложениях
  • 4 См. Также
  • 5 Ссылки
  • 6 Библиография

Компоненты

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

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

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

Как и в случае с другими шаблонами программного обеспечения, 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), модель – представление– viewmodel (MVVM) и другие, адаптировавшие MVC к разным контекстам.

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

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

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

Некоторые веб-фреймворки MVC используют подход тонкого клиента. это помещает почти всю логику модели, представления и контроллера на сервер. Это отражено в таких фреймворках, как Django, Rails и ASP.NET MVC. В этом подходе клиент отправляет контроллеру либо запросы гиперссылки, либо формы, а затем получает полную и обновленную веб-страницу (или другой документ) из представления; модель полностью существует на сервере. Другие платформы, такие как AngularJS, EmberJS, JavaScriptMVC и Backbone, позволяют компонентам MVC частично выполняться на клиенте (также см. Ajax ).

См. Также

Ссылки

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

101