logo

Введення в структуру MVC

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

Що таке MVC?

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



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

Особливості MVC:

  • Він забезпечує чітке поділ бізнес-логіка, логіка інтерфейсу користувача та логіка введення.
  • Він пропонує повний контроль над вашим HTML і URL-адресами, що полегшує розробку архітектури веб-додатків.
  • Це потужний компонент відображення URL-адрес, за допомогою якого ми можемо створювати програми, які мають зрозумілі та доступні для пошуку URL-адреси.
  • Це підтримує Test Driven Development (TDD).

Щоб дізнатися більше про переваги використання MVC Framework, перегляньте статтю – Переваги використання фреймворку MVC

Компоненти MVC:

Структура MVC включає наступні 3 компоненти:



  • Контролер
  • Модель
  • Переглянути

Дизайн архітектури MVC

Контролер:

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

escape-символ Java

Переглянути:

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



модель:

The Модель компонент відповідає всій логіці даних, з якою працює користувач. Це можуть бути або дані, які передаються між компонентами View і Controller, або будь-які інші дані, пов’язані з бізнес-логікою. Він може додавати або отримувати дані з бази даних. Він відповідає на запит контролера, оскільки контролер не може взаємодіяти з базою даних сам по собі. Модель взаємодіє з базою даних і повертає необхідні дані контролеру.

Робота фреймворку MVC на прикладі:

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

Потік даних у компонентах MVC

Модель надсилає запит до бази даних щодо списку всіх студентів, а потім повертає цей список назад до контролера. Якщо відповідь від моделі була успішною, тоді контролер запитував би представлення, пов’язане зі студентами, повернути презентацію списку студентів. Це подання візьме список студентів із контролера та візуалізує список у HTML, який може використовуватись у браузері.

знайти в карті c++

Потім контролер приймає цю презентацію та повертає її назад користувачеві. На цьому запит закінчується. Якщо раніше модель повертала помилку, контролер обробив би цю помилку, попросивши представлення, яке обробляє помилки, відтворити презентацію для цієї конкретної помилки. Ця презентація помилки буде повернута користувачеві замість презентації списку студентів.

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

Архітектурний шаблон MVC дозволяє нам дотримуватися наступних принципів проектування:
1. Розділяй і володарюй. Три компоненти можуть бути розроблені дещо незалежно.
2. Підвищити згуртованість. Компоненти мають сильнішу зв’язність шарів, ніж якби подання та контролер були разом на одному рівні інтерфейсу користувача.
3. Зменшити зчеплення. Канали зв'язку між трьома компонентами мінімальні, їх легко знайти.
4. Збільште повторне використання. Перегляд і контролер зазвичай широко використовують багаторазові компоненти для різних видів елементів керування інтерфейсу користувача. Однак користувальницький інтерфейс стане залежним від програми, тому його не можна буде легко використовувати повторно.
5. Дизайн для гнучкості. Зазвичай досить легко змінити користувальницький інтерфейс, змінивши перегляд, контролер або обидва.

Переваги MVC:

  • Коди легко підтримувати, і їх можна легко розширити.
  • MVC модель компонент можна перевірити окремо.
  • Компоненти MVC можна розробляти одночасно.
  • Це зменшує складність, розділяючи програму на три блоки. Модель, подання та контролер.
  • Це підтримує Test Driven Development (TDD).
  • Він добре працює для веб-програм, які підтримуються великими командами веб-дизайнерів і розробників.
  • Ця архітектура допомагає тестувати компоненти незалежно, оскільки всі класи та об’єкти незалежні один від одного
  • Пошукова оптимізація (SEO) дружній.

Недоліки MVC:

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

Популярні фреймворки MVC:

Деякі з найпопулярніших і широко використовуваних фреймворків MVC перераховані нижче.

  • Ruby on Rails
  • Джанго
  • CherryPy
  • Весна MVC
  • Каталізатор
  • Рейки
  • Zend Framework
  • Паливо PHP
  • Laravel
  • Симфонія

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