MVC ArchiАрхитектура и фреймворк с примерами.
⚡ Умное резюме
Архитектурный шаблон Model-View-Controller (MVC) разделяет приложение на три компонента — модель, представление и контроллер — изолируя бизнес-логику от уровня представления для создания поддерживаемых и тестируемых веб- и настольных приложений с использованием таких фреймворков, как Spring, Django и Laravel.

Что такое MVC Framework?
Модель-представление-контроллер (MVC) Framework — это архитектурный шаблон, который разделяет приложение на три основных логических компонента: модель, представление и контроллер. Отсюда и аббревиатура MVC. Каждый компонент архитектуры создан для обработки конкретного аспекта разработки приложения. MVC отделяет бизнес-логику и уровень представления друг от друга. Он традиционно использовался для графических пользовательских интерфейсов (GUI) настольных компьютеров. В настоящее время архитектура MVC в веб-технологиях стала популярной для разработки веб-приложений, а также мобильных приложений.
История MVC
- Архитектура MVC впервые обсуждалась в 1979 году Трюгве Реенскаугом.
- Модель MVC была впервые представлена в 1987 году на языке программирования Smalltalk.
- MVC был впервые принят как общая концепция в статье 1988 года.
- В последнее время шаблон MVC широко используется в современных веб-приложениях.
Особенности MVC
- Простая и беспроблемная проверка. Легко тестируемая, расширяемая и подключаемая платформа.
- Разработка архитектуры веб-приложения с использованием шаблона MVC обеспечивает полный контроль над вашим HTML-кодом, а также над вашими другими функциями. URLs
- Используйте существующие функции, предоставляемые ASP.NET, JSP, Django и т. д.
- Четкое разделение логики: Модель, Представление, Контроллер. Разделение задач приложения, а именно. бизнес-логика, логика Ul и логика ввода
- URL Маршрутизация для SEO-оптимизации URLс. Мощный URL-mapping для понятного и доступного для поиска URLs
- Поддержка разработки через тестирование (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
- Codeвоспламенитель
- Laravel
- Топливо PHP
- Symphony
Преимущества MVC: основные преимущества
Вот основные преимущества использования архитектуры MVC:
- Простое обслуживание кода, который легко расширять и расширять.
- Компонент модели MVC можно тестировать отдельно от пользователя.
- Упрощенная поддержка новых типов клиентов
- Разработка различных компонентов может осуществляться параллельно.
- Это поможет вам избежать сложности, разделив приложение на три блока. Модель, представление и контроллер
- Он использует только шаблон Front Controller, который обрабатывает запросы веб-приложений через один контроллер.
- Предлагает лучшую поддержку для разработка через тестирование
- Он хорошо работает для веб-приложений, которые поддерживаются большими группами веб-дизайнеров и разработчиков.
- Обеспечивает четкое разделение задач (SoC).
- Поисковая оптимизация (SEO).
- Все классы и объекты независимы друг от друга, поэтому вы можете тестировать их отдельно.
- Шаблон проектирования MVC позволяет создавать логические группыping связанных действий на контроллере.
Недостатки использования MVC
- Эту модель сложно читать, изменять, модульно тестировать и повторно использовать.
- Навигация по фреймворку может быть порой сложной, поскольку она вводит новые уровни абстракции.tracЭто требует от пользователей адаптации к критериям декомпозиции MVC.
- Никакой формальной поддержки валидации
- Повышенная сложность и неэффективность данных
- Сложность использования MVC с современным пользовательским интерфейсом.
- Для параллельного программирования требуется несколько программистов.
- Требуется знание множества технологий.
- Поддержка большого количества кодов в контроллере
3 яруса Archiтектура против MVC Archiтекстура
| Параметр | 3-Tier Archiтекстура | MVC Archiтекстура |
|---|---|---|
| Коммуникация | Этот тип архитектуры никогда не взаимодействует напрямую с уровнем данных. | Все уровни взаимодействуют напрямую, используя топологию треугольника. |
| Применение | Трехуровневый: широко используется в веб-приложениях, где клиент, уровни данных и промежуточное ПО работают на физически отдельных платформах. | Обычно используется в приложениях, которые работают на одной графической рабочей станции. |


