Урок за MVC Framework за начинаещи: Какво е, Archiтекстура и пример

Какво е MVC Framework?

- Модел-изглед-контролер (MVC) framework е архитектурен модел, който разделя приложението на три основни логически компонента модел, изглед и контролер. Оттук и съкращението MVC. Всеки компонент на архитектурата е изграден, за да се справи със специфичен аспект на разработка на приложение. MVC разделя бизнес логиката и презентационния слой един от друг. Традиционно се използва за настолни графични потребителски интерфейси (GUI). В наши дни MVC архитектурата в уеб технологиите стана популярна за проектиране на уеб приложения, както и на мобилни приложения.

История на MVC

  • Архитектурата на MVC се обсъжда за първи път през 1979 г. от Trygve Reenskaug
  • 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

Нека видим пример за контролер за изглед на модел от ежедневието:

Пример 1

Примери за MVC

  • Да предположим, че отивате на ресторант. Няма да отидете в кухнята и да приготвите храна, което със сигурност можете да направите у дома. Вместо това отивате там и чакате сервитьора да дойде.
  • Сега сервитьорът идва при вас и вие поръчвате храната. Сервитьорът не знае кой сте и какво искате, той просто записа подробностите за вашата поръчка за храна.
  • След това сервитьорът се премества в кухнята. В кухнята сервитьорът не приготвя храната ви.
  • Готвачът приготвя вашата храна. Сервитьорът получава вашата поръчка заедно с номера на вашата маса.
  • Гответе след това приготвена храна за вас. Той използва съставки за приготвяне на храната. Да приемем, че сте поръчали зеленчуков сандвич. След това той се нуждае от хляб, домат, картоф, люта чушка, лук, малко сирене и т.н., които набавя от хладилника
  • Кук накрая предава храната на сервитьора. Сега е работа на сервитьора да премести тази храна извън кухнята.
  • Сега сервитьорът знае коя храна сте поръчали и как се сервира.

В този пример за MVC архитектура,

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

Нека видим още един пример за MVC модел,

Пример 2

Примери за MVC

Механизмът за задвижване на автомобил е друг пример за модела MVC.

  • Всяка кола се състои от три основни части.
  • Изглед = Потребителски интерфейс: (Скоростен лост, панели, волан, спирачка и др.)
  • Контролер - механизъм (двигател)
  • Модел - Съхранение (резервоар за бензин или дизел)

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

Популярни MVC уеб рамки

Ето списък на някои популярни MVC рамки:

Предимства на MVC: Основни предимства

Ето основните предимства от използването на MVC архитектура:

  • Лесна поддръжка на код, който лесно се разширява и разширява
  • Компонентът на модела MVC може да бъде тестван отделно от потребителя
  • По-лесна поддръжка за нови типове клиенти
  • Разработването на различните компоненти може да се извършва паралелно.
  • Помага ви да избегнете сложността, като разделите приложението на трите единици. Модел, изглед и контролер
  • Той използва само модел на преден контролер, който обработва заявки за уеб приложения чрез един контролер.
  • Предлага най-добрата поддръжка за разработка, управлявана от тестове
  • Работи добре за уеб приложения, които се поддържат от големи екипи от уеб дизайнери и разработчици.
  • Осигурява чисто разделяне на проблемите (SoC).
  • Удобен за оптимизация за търсачки (SEO).
  • Всички класове и обекти са независими един от друг, така че можете да ги тествате поотделно.
  • Моделът на MVC дизайн позволява логическо групиране на свързани действия на контролер заедно.

Недостатъци на използването на MVC

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

3 нива Architecture срещу MVC Archiтекстура

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

Oбобщение

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