Учебное пособие по MVC Framework для начинающих: что такое, Archiтектура и пример

Что такое MVC Framework?

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

История MVC

  • Архитектура MVC впервые обсуждалась в 1979 году Трюгве Реенскаугом.
  • Модель MVC была впервые представлена ​​в 1987 году на языке программирования Smalltalk.
  • MVC был впервые принят как общая концепция в статье 1988 года.
  • В последнее время шаблон MVC широко используется в современных веб-приложениях.

Особенности MVC

  • Простая и беспроблемная проверка. Легко тестируемая, расширяемая и подключаемая платформа.
  • Для разработки архитектуры веб-приложения с использованием шаблона MVC он предлагает полный контроль над вашим HTML, а также над вашими URL-адресами.
  • Используйте существующие функции, предоставляемые ASP.NET, JSP, Django и т. д.
  • Четкое разделение логики: Модель, Представление, Контроллер. Разделение задач приложения, а именно. бизнес-логика, логика Ul и логика ввода
  • URL-маршрутизация для SEO-дружественных URL-адресов. Мощное сопоставление URL-адресов для понятных и доступных для поиска URL-адресов.
  • Поддержка разработки через тестирование (TDD)

MVC Archiтекстура

Вот подробная архитектура платформы MVC:

MVC Archiтекстура
MVC ArchiДиаграмма тектуры

Три важных компонента MVC:

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

Давайте посмотрим друг на друга этот компонент в деталях:

Посмотреть

Представление — это та часть приложения, которая представляет представление данных.

Представления создаются на основе данных, собранных из данных модели. Представление запрашивает модель предоставить информацию, чтобы она представила выходную презентацию пользователю.

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

контроллер

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

Контроллер отправляет команды модели для обновления ее состояния (например, сохранение определенного документа). Контроллер также отправляет команды связанному с ним представлению для изменения представления представления (например, прокрутки определенного документа).

Модель

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

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

Примеры MVC

Давайте посмотрим на пример Model View Controller из повседневной жизни:

Пример 1

Примеры MVC

  • Предположим, вы идете в ресторан. Вам не придется идти на кухню и готовить еду, которую вы наверняка сможете сделать дома. Вместо этого вы идете туда и ждете, пока подойдет официант.
  • Теперь к вам подходит официант, и вы заказываете еду. Официант не знает, кто вы и что вы хотите, он просто записал детали вашего заказа на еду.
  • Затем официант переходит на кухню. На кухне официант не готовит вам еду.
  • Повар готовит вам еду. Официант передает ему ваш заказ вместе с номером вашего стола.
  • Затем приготовьте приготовленную для вас еду. Он использует ингредиенты для приготовления еды. Предположим, вы заказываете сэндвич с овощами. Затем ему нужен хлеб, помидоры, картофель, перец, лук, кусочки сыра и т. д., которые он берет из холодильника.
  • В завершение повар передает еду официанту. Теперь задача официанта — перенести эту еду за пределы кухни.
  • Теперь официант знает, какую еду вы заказали и как ее подают.

В этом примере архитектуры MVC

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

Давайте посмотрим еще один пример модели MVC:

Пример 2

Примеры MVC

Механизм вождения автомобиля — еще один пример модели MVC.

  • Любой автомобиль состоит из трех основных частей.
  • Вид = Пользовательский интерфейс: (Рычаг переключения передач, панели, рулевое колесо, тормоз и т. д.)
  • Контроллер-механизм (двигатель)
  • Модель – Хранение (бензиновый или дизельный бак)

Автомобиль работает от двигателя, забирает топливо из хранилища, но работает только с использованием упомянутых устройств пользовательского интерфейса.

Популярные веб-фреймворки MVC

Вот список некоторых популярных фреймворков MVC:

Преимущества MVC: основные преимущества

Вот основные преимущества использования архитектуры MVC:

  • Простое обслуживание кода, который легко расширять и расширять.
  • Компонент модели MVC можно тестировать отдельно от пользователя.
  • Упрощенная поддержка новых типов клиентов
  • Разработка различных компонентов может осуществляться параллельно.
  • Это поможет вам избежать сложности, разделив приложение на три блока. Модель, представление и контроллер
  • Он использует только шаблон Front Controller, который обрабатывает запросы веб-приложений через один контроллер.
  • Предлагает лучшую поддержку для разработка через тестирование
  • Он хорошо работает для веб-приложений, которые поддерживаются большими группами веб-дизайнеров и разработчиков.
  • Обеспечивает четкое разделение проблем (SoC).
  • Поисковая оптимизация (SEO).
  • Все классы и объекты независимы друг от друга, поэтому вы можете тестировать их отдельно.
  • Шаблон проектирования MVC позволяет логически группировать связанные действия на контроллере.

Недостатки использования MVC

  • Эту модель сложно читать, изменять, модульно тестировать и повторно использовать.
  • Навигация по фреймворку может оказаться сложной во времени, поскольку она вводит новые уровни абстракции, что требует от пользователей адаптации к критериям декомпозиции MVC.
  • Никакой формальной поддержки валидации
  • Повышенная сложность и неэффективность данных
  • Сложность использования MVC с современным пользовательским интерфейсом.
  • Для параллельного программирования требуется несколько программистов.
  • Требуется знание множества технологий.
  • Поддержка большого количества кодов в контроллере

3 яруса Archiтектура против MVC Archiтекстура

Параметр 3-Tier Archiтекстура MVC Archiтекстура
Коммуникация Этот тип архитектуры никогда не взаимодействует напрямую с уровнем данных. Все уровни взаимодействуют напрямую, используя топологию треугольника.
Применение Трехуровневый: широко используется в веб-приложениях, где клиент, уровни данных и промежуточное ПО работают на физически отдельных платформах. Обычно используется в приложениях, которые работают на одной графической рабочей станции.

Итого

  • MVC — это архитектурный шаблон, который разделяет приложение на 1) модель, 2) представление и 3) контроллер.
  • Модель: включает в себя все данные и связанную с ними логику.
  • Представление: представляет данные пользователю или обрабатывает взаимодействие с пользователем.
  • Контроллер: интерфейс между компонентами модели и представления.
  • Архитектура MVC впервые обсуждалась в 1979 году Трюгве Реенскаугом.
  • Архитектура MVC в Java это легко тестируемая, расширяемая и подключаемая среда.
  • Некоторые популярные фреймворки MVC — это Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP и т. д.