Підручник з 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:

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

Давайте розберемося детальніше з цим компонентом:

вид

Представлення — це та частина програми, яка представляє представлення даних.

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

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

контролер

Контролер — це та частина програми, яка обробляє взаємодію користувача. Контролер інтерпретує дані, введені користувачем за допомогою миші та клавіатури, інформуючи про зміну моделі та перегляду.

Контролер надсилає команди моделі для оновлення її стану (наприклад, збереження певного документа). Контролер також надсилає команди до пов’язаного подання, щоб змінити представлення подання (наприклад, прокручування певного документа).

Модель

Компонент моделі зберігає дані та пов’язану з ними логіку. Він представляє дані, які передаються між компонентами контролера, або будь-яку іншу пов’язану бізнес-логіку. Наприклад, об’єкт Controller отримає інформацію про клієнта з бази даних. Він маніпулює даними та надсилає їх назад до бази даних або використовує їх для відтворення тих самих даних.

Він відповідає на запит від представлень, а також відповідає на інструкції контролера щодо оновлення. Це також найнижчий рівень шаблону, який відповідає за збереження даних.

Приклади MVC

Давайте подивимося на приклад моделі View Controller із повсякденного життя:

Приклад 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-рівневий Archiтектура проти MVC Archiтектура

Параметр 3-рівневий Archiтектура MVC Archiтектура
Комунікація Цей тип шаблону архітектури ніколи не зв’язується безпосередньо з рівнем даних. Усі рівні взаємодіють безпосередньо за допомогою трикутної топології.
Використання 3-рівневий: широко використовується у веб-додатках, де клієнт, рівні даних і проміжне програмне забезпечення працюють на фізично окремих платформах. Зазвичай використовується в програмах, які працюють на одній графічній робочій станції.

Підсумки

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