MVC ArchiТекстура та фреймворк з прикладами

⚡ Розумний підсумок

Модель-Вид-Контролер (MVC) — це архітектурний шаблон, який розділяє застосунок на три компоненти — Модель, Вид та Контролер — ізолюючи бізнес-логіку від рівня представлення для створення зручних у підтримці та тестуванні веб- та настільних застосунків за допомогою таких фреймворків, як Spring, Django та Laravel.

  • 🧱 Три компоненти: MVC поділяє застосунок на Модель (дані), Вид (презентація) та Контролер (взаємодія з користувачем).
  • 🗄️ Model: Зберігає дані та бізнес-логіку, відповідаючи на запити від View та інструкції від Controller.
  • 🖼️ вид: Представляє дані користувачеві через елементи інтерфейсу, такі як текстові поля, випадаючі списки, діаграми та таблиці.
  • 🎮 Контролер: Інтерпретує введені користувачем дані, а потім відповідно оновлює Модель та Вид.
  • ️ Популярні фреймворки: Spring MVC, Django, Ruby on Rails, CakePHP, Laravel та CodeIgniter реалізує шаблон MVC.
  • 🇧🇷 Переваги проти недоліків: MVC покращує тестованість та паралельну розробку, але додає ABStracшари ції та складність навігації.

MVC ArchiТекстура та фреймворк

Що таке 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 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 дозволяє логічну групуping пов'язаних дій на контролері разом.

Недоліки використання MVC

  • Цю модель важко читати, змінювати, тестувати одиниці та повторно використовувати
  • Навігація фреймворком може бути дещо складною, оскільки вона вводить нові шари абсtracція, яка вимагає від користувачів адаптації до критеріїв декомпозиції MVC.
  • Немає офіційної підтримки перевірки
  • Підвищена складність і неефективність даних
  • Складність використання MVC із сучасним інтерфейсом користувача
  • Існує потреба в кількох програмістах для паралельного програмування.
  • Потрібне знання багатьох технологій.
  • Обслуговування великої кількості кодів у контролері

3-рівневий Archiтектура проти MVC Archiтектура

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

Поширені запитання

MVC — це архітектурний шаблон, а не простий шаблон проектування. Він організовує весь застосунок на рівні Моделі, Представлення та Контролера, розділяючи дані, презентацію та логіку взаємодії з користувачем.

MVC використовує контролер для обробки вхідних даних та оновлення моделі та представлення, тоді як MVVM використовує ViewModel з прив'язкою даних. MVVM зменшує кількість шаблонних елементів і є поширеним явищем у сучасних фреймворках інтерфейсу користувача.

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

Функції штучного інтелекту зазвичай додаються на рівні моделі або сервісу MVC-застосунку. Контролер передає вхідні дані користувача моделям штучного інтелекту, а Представлення відображає прогнози, рекомендації або згенерований контент для користувачів.

Так. Помічники кодування ШІ можуть створювати MVC-компоненти, генерувати контролери, моделі та представлення, а також пропонувати маршрутизацію. Розробники все одно перевіряють результат, щоб забезпечити правильність бізнес-логіки та безпеки.

Підсумуйте цей пост за допомогою: