Учебное пособие по 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:
- Модель: включает в себя все данные и связанную с ними логику.
- Представление: представляет данные пользователю или обрабатывает взаимодействие с пользователем.
- Контроллер: интерфейс между компонентами модели и представления.
Давайте посмотрим друг на друга этот компонент в деталях:
Посмотреть
Представление — это та часть приложения, которая представляет представление данных.
Представления создаются на основе данных, собранных из данных модели. Представление запрашивает модель предоставить информацию, чтобы она представила выходную презентацию пользователю.
В представлении также представлены данные из диаграмм, диаграмм и таблиц. Например, любое представление клиента будет включать в себя все компоненты пользовательского интерфейса, такие как текстовые поля, раскрывающиеся списки и т. д.
контроллер
Контроллер — это часть приложения, которая управляет взаимодействием с пользователем. Контроллер интерпретирует вводимые пользователем данные с помощью мыши и клавиатуры, информируя модель и представление о необходимости изменения.
Контроллер отправляет команды модели для обновления ее состояния (например, сохранение определенного документа). Контроллер также отправляет команды связанному с ним представлению для изменения представления представления (например, прокрутки определенного документа).
Модель
Компонент модели хранит данные и связанную с ними логику. Он представляет данные, которые передаются между компонентами контроллера или любой другой связанной бизнес-логикой. Например, объект Controller будет получать информацию о клиенте из базы данных. Он манипулирует данными и отправляет их обратно в базу данных или использует их для отображения тех же данных.
Он отвечает на запрос представлений, а также на инструкции контроллера по обновлению. Это также самый нижний уровень шаблона, который отвечает за сохранение данных.
Примеры MVC
Давайте посмотрим на пример Model View Controller из повседневной жизни:
Пример 1
- Предположим, вы идете в ресторан. Вам не придется идти на кухню и готовить еду, которую вы наверняка сможете сделать дома. Вместо этого вы идете туда и ждете, пока подойдет официант.
- Теперь к вам подходит официант, и вы заказываете еду. Официант не знает, кто вы и что вы хотите, он просто записал детали вашего заказа на еду.
- Затем официант переходит на кухню. На кухне официант не готовит вам еду.
- Повар готовит вам еду. Официант передает ему ваш заказ вместе с номером вашего стола.
- Затем приготовьте приготовленную для вас еду. Он использует ингредиенты для приготовления еды. Предположим, вы заказываете сэндвич с овощами. Затем ему нужен хлеб, помидоры, картофель, перец, лук, кусочки сыра и т. д., которые он берет из холодильника.
- В завершение повар передает еду официанту. Теперь задача официанта — перенести эту еду за пределы кухни.
- Теперь официант знает, какую еду вы заказали и как ее подают.
В этом примере архитектуры MVC
View= You Waiter= Controller Cook= Model Refrigerator= Data
Давайте посмотрим еще один пример модели MVC:
Пример 2
Механизм вождения автомобиля — еще один пример модели MVC.
- Любой автомобиль состоит из трех основных частей.
- Вид = Пользовательский интерфейс: (Рычаг переключения передач, панели, рулевое колесо, тормоз и т. д.)
- Контроллер-механизм (двигатель)
- Модель – Хранение (бензиновый или дизельный бак)
Автомобиль работает от двигателя, забирает топливо из хранилища, но работает только с использованием упомянутых устройств пользовательского интерфейса.
Популярные веб-фреймворки MVC
Вот список некоторых популярных фреймворков MVC:
- Рубин на рельсах
- Django
- CakePHP
- Yii
- ЧерриПи
- Весенний МВК
- Катализатор
- Rails
- Zend Framework
- CodeIgniter
- Laravel
- Топливо PHP
- Symphony
Преимущества 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 и т. д.