MVC ArchiТекстура та фреймворк з прикладами
⚡ Розумний підсумок
Модель-Вид-Контролер (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- картаping для зрозумілості та зручності для пошуку URLs
- Підтримка тестової розробки (TDD)
MVC Archiтектура
Тепер, коли переваги зрозумілі, ось детальна архітектура MVC-фреймворку:

Три важливі компоненти MVC:
- Модель: включає всі дані та відповідну логіку
- Перегляд: представлення даних користувачеві або керування взаємодією користувача
- Контролер: інтерфейс між компонентами Model і View
Давайте детально розглянемо кожен із цих компонентів:
вид
Представлення — це та частина програми, яка представляє представлення даних.
Представлення створюються на основі даних, зібраних з даних моделі. Представлення запитує у моделі інформацію, щоб вона могла представити вихідне представлення користувачеві.
Подання також представляє дані з діаграм, діаграм і таблиць. Наприклад, будь-яке представлення клієнта включатиме всі компоненти інтерфейсу користувача, такі як текстові поля, спадні списки тощо.
контролер
Контролер – це та частина програми, яка обробляє взаємодію з користувачем. Контролер інтерпретує введення миші та клавіатури від користувача, повідомляючи модель та вигляд про необхідні зміни відповідно.
Контролер надсилає команди моделі для оновлення її стану (наприклад, збереження певного документа). Контролер також надсилає команди пов'язаному з ним поданню для зміни його представлення (наприклад, прокручування певного документа).
Модель
Компонент моделі зберігає дані та пов’язану з ними логіку. Він представляє дані, які передаються між компонентами контролера, або будь-яку іншу пов’язану бізнес-логіку. Наприклад, об’єкт Controller отримає інформацію про клієнта з бази даних. Він маніпулює даними та надсилає їх назад до бази даних або використовує їх для відтворення тих самих даних.
Він відповідає на запити від переглядів, а також відповідає на інструкції від контролера щодо самооновлення. Це також найнижчий рівень шаблону, який відповідає за збереження даних.
Приклади MVC
Давайте подивимося на приклад моделі View Controller із повсякденного життя:
Приклад 1
- Припустимо, ви йдете в ресторан. Ви не будете ходити на кухню і готувати їжу, що ви точно зможете зробити вдома. Замість цього ви йдете туди і чекаєте, поки підійде офіціант.
- Тепер до вас підходить офіціант, і ви замовляєте їжу. Офіціант не знає, хто ви і чого хочете, він просто записав деталі вашого замовлення їжі.
- Потім офіціант переходить на кухню. На кухні офіціант не готує вам їжу.
- Кухар готує вашу їжу. Офіціанту вручають ваше замовлення разом із номером столика.
- Потім готуйте готову їжу для вас. Він використовує інгредієнти для приготування їжі. Припустимо, ви замовляєте овочевий бутерброд. Тоді йому потрібен хліб, помідори, картопля, стручковий перець, цибуля, шматочок, сир тощо, які він бере з холодильника.
- Кухар остаточно передає їжу офіціанту. Тепер робота офіціанта – виносити цю їжу з кухні.
- Тепер офіціант знає, які страви ви замовили і як їх подають.
У цьому прикладі архітектури MVC,
View= You Waiter= Controller Cook= Model Refrigerator= Data
Давайте подивимося ще один приклад моделі MVC,
Приклад 2
Механізм приводу автомобіля - ще один приклад моделі MVC.
- Кожен автомобіль складається з трьох основних частин.
- Вигляд: Інтерфейс користувача: (важіль перемикання передач, панелі, кермо, гальмо тощо)
- Контролер - механізм (двигун)
- Модель - Зберігання (бензиновий або дизельний бак)
Автомобіль працює від двигуна, бере паливо зі сховища, але він працює лише за допомогою згаданих пристроїв інтерфейсу користувача.
Популярні веб-фреймворки MVC
Ось список деяких популярних фреймворків MVC:
- Рубін на рейки
- Django
- CakePHP
- Yii
- CherryPy
- Весняний MVC
- Каталізатор
- Rails
- Zend Framework
- CodeЗапалювач
- Laravel
- Паливо PHP
- Symphony
Переваги MVC: ключові переваги
Ось основні переваги використання архітектури MVC:
- Просте обслуговування коду, який легко розширювати та розвивати
- Компонент моделі MVC можна протестувати окремо від користувача
- Простіша підтримка нових типів клієнтів
- Розробку різних компонентів можна виконувати паралельно.
- Це допоможе вам уникнути складності, розділивши програму на три блоки. Модель, подання та контролер
- Він використовує лише шаблон переднього контролера, який обробляє запити веб-додатків через один контролер.
- Пропонує найкращу підтримку для тестова розробка
- Він добре працює для веб-програм, які підтримуються великими командами веб-дизайнерів і розробників.
- Забезпечує чітке розділення обов'язків (SoC).
- Зручність пошукової оптимізації (SEO).
- Усі класи та об’єкти незалежні один від одного, тому їх можна тестувати окремо.
- Шаблон проектування MVC дозволяє логічну групуping пов'язаних дій на контролері разом.
Недоліки використання MVC
- Цю модель важко читати, змінювати, тестувати одиниці та повторно використовувати
- Навігація фреймворком може бути дещо складною, оскільки вона вводить нові шари абсtracція, яка вимагає від користувачів адаптації до критеріїв декомпозиції MVC.
- Немає офіційної підтримки перевірки
- Підвищена складність і неефективність даних
- Складність використання MVC із сучасним інтерфейсом користувача
- Існує потреба в кількох програмістах для паралельного програмування.
- Потрібне знання багатьох технологій.
- Обслуговування великої кількості кодів у контролері
3-рівневий Archiтектура проти MVC Archiтектура
| Параметр | 3-рівневий Archiтектура | MVC Archiтектура |
|---|---|---|
| Комунікація | Цей тип шаблону архітектури ніколи не зв’язується безпосередньо з рівнем даних. | Усі рівні взаємодіють безпосередньо за допомогою трикутної топології. |
| Використання | 3-рівневий: широко використовується у веб-додатках, де клієнт, рівні даних і проміжне програмне забезпечення працюють на фізично окремих платформах. | Зазвичай використовується в програмах, які працюють на одній графічній робочій станції. |


