MVC ArchiТекстура и рамка с примери

⚡ Умно обобщение

Model-View-Controller (MVC) е архитектурен модел, който разделя приложението на три компонента – Model, View и Controller – изолирайки бизнес логиката от презентационния слой, за да изгради поддържаеми, тестваеми уеб и десктоп приложения, използвайки рамки като Spring, Django и Laravel.

  • 🧱 Три компонента: MVC разделя приложението на Модел (данни), Изглед (презентация) и Контролер (взаимодействие с потребителя).
  • 🗄️ Модел: Съхранява данни и бизнес логика, отговаряйки на заявки от 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 г. от Trygve Reenskaug
  • 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 компонента са:

  • Модел: Включва всички данни и свързаната с тях логика
  • Изглед: Представяне на данни на потребителя или управление на потребителското взаимодействие
  • Контролер: интерфейс между компонентите на модела и изгледа

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

Гледка

Изгледът е тази част от приложението, която представлява представянето на данни.

Изгледите се създават от данните, събрани от данните на модела. Изгледът изисква от модела да предостави информация, така че да представи изходната презентация на потребителя.

Изгледът също така представя данните от диаграми, диаграми и таблици. Например всеки клиентски изглед ще включва всички компоненти на потребителския интерфейс като текстови полета, падащи менюта и т.н.

Регулатор

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

Контролерът изпраща команди към модела, за да актуализира състоянието му (например, запазване на конкретен документ). Контролерът също така изпраща команди към свързания с него изглед, за да промени представянето на изгледа (например, превъртане на конкретен документ).

Модел

Компонентът на модела съхранява данни и свързаната с тях логика. Той представлява данни, които се прехвърлят между компонентите на контролера или всяка друга свързана бизнес логика. Например обект 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 дизайн шаблонът позволява логическо групиранеping на свързани действия върху контролер заедно.

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

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

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

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

Въпроси и Отговори

MVC е архитектурен шаблон, а не обикновен шаблон за проектиране. Той организира цялото приложение в слоеве Модел, Изглед и Контролер, разделяйки данните, представянето и логиката за взаимодействие с потребителя.

MVC използва контролер за обработка на входни данни и актуализиране на модела и изгледа, докато MVVM използва ViewModel с обвързване на данни. MVVM намалява шаблоните и е често срещан в съвременните UI рамки.

Използвайте MVC при изграждането на приложения, които изискват ясно разделяне на данни, потребителски интерфейс и логика, особено уеб приложения, поддържани от по-големи екипи. Това подобрява тестваемостта, паралелната разработка и SEO-съвместимото маршрутизиране.

Функциите на AI обикновено се добавят в слоя Модел или услуга на MVC приложение. Контролерът предава потребителски вход към AI модели, а Изгледът показва прогнози, препоръки или генерирано съдържание на потребителите.

Да. Асистентите за AI кодиране могат да изграждат MVC компоненти, да генерират контролери, модели и изгледи, както и да предлагат маршрутизация. Разработчиците все още преглеждат резултата, за да гарантират правилната бизнес логика и сигурност.

Обобщете тази публикация с: