MVC, MVP, MVVM: Кое да избера?

MVC, MVP, MVVM: Кое да избера?

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





Трите най-популярни шаблона за проектиране са MVC, MVP и MVVM. MVC означава модел, изглед и контролер, докато MVP означава модел, изглед и презентатор, а MVVM означава модел, изглед и модел на изглед.





Архитектурни и дизайнерски модели

Архитектурен модел

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





Дизайн модел

Шаблонът за проектиране е формализирана най-добра практика, която можете да използвате за решаване на често срещани проблеми при проектирането на приложение или система.

Разликата между архитектурен и дизайнерски модел

Нека започнем с общия термин - модел. В софтуера моделът е повтарящо се свойство, което ви позволява да разбиете огромна и сложна структура на по-малки, по-прости компоненти. Можете да използвате този модел, за да създадете общо решение за клас проблеми.



Във всяко ниво на разработка на софтуер ще използвате различни инструменти. На по-малки нива тези инструменти са шаблони за проектиране. Архитектурните модели съществуват на по-големи нива и програмни парадигми на ниво изпълнение.

Защо се нуждаем от модели на архитектурен дизайн?

По време на разработката на софтуер можете да използвате модели на архитектурен дизайн за решаване на общи проблеми. Добрата архитектура също може да ви помогне да:





  • Разделете сложните задачи на по-прости.
  • Намалете грешките.
  • Създайте код, който може да се тества и поддържа.

Но без архитектурен модел може да срещнете трудности при поддържането на бизнес логиката на вашето приложение.

Модел, изглед, ViewModel, контролер и презентатор

Преди да разгледате всеки модел, ето термините, които ги съставят:





портфейли, които защитават вашите кредитни карти
  • Модел съхранява данни и комуникира директно с базата данни. Моделът е частта, която представя вашите данни и логика на приложението. Той определя бизнес правилата, които управляват обработката, модификацията или обработката на данни.
  • Преглед показва данните на модела и отговаря за представянето на данните в потребителския интерфейс.
  • ViewModel е изключителен за модела MVVM. Това е абстракция на слоя изглед и също така действа като обвивка за данните на модела.
  • Контролер е компонентът, който интегрира изгледа и модела.
  • Водещ е компонент, който съществува само в модела MVP. Презентаторът получава входните данни от компонента изглед и обработва данните с помощта на модела.

MVC, MVP и MVVM шаблони

Модел-изглед-контролер

The MVC архитектурен модел беше първият и днес е популярен в областта на уеб приложенията. Въведен е през 70-те години на миналия век. Този модел ви позволява да изградите приложение около разделяне на загрижеността (SoC). Това улеснява усилията, които са ви необходими, за да тествате, поддържате и развивате вашето приложение.

В модела MVC моделът няма разбиране за изгледа или контролера. Наблюдателят на модела ще получи предупреждение, когато има промяна в изгледа и контролера. Контролерът помага на процеса на маршрутизиране да свърже модела със съответния изглед.

Някои от предимствата на модела MVC са:

как да използвате две клавиатури поотделно
  • Разделяне на грижите (по-фокусирани).
  • Улеснява тестването и управлението на кода.
  • Насърчава отделянето на слоевете на приложението.
  • По-добра организация на кода и повторна употреба.

Ето как работи MVC:

  Изображение на диаграма, която илюстрира как работи MVC

Благодарение на SoC, MVC може да намали размера на кода и да направи добър код, който е чист и управляем.

Модел-изглед-представител

Моделът MVP споделя два компонента с MVC: модел и изглед. Той замества контролера с презентатора. Презентаторът - както подсказва името му - се използва за представяне на нещо. Позволява ви да се подигравате на гледката по-лесно.

В MVP презентаторът има функционалността на 'средния човек', защото цялата логика на презентацията е насочена към него. Изгледът и презентаторът в MVP също са независими един от друг и си взаимодействат чрез интерфейс.

Ето илюстрация на това как работи MVP моделът:

  Изображение на диаграма, която илюстрира как работи MVP

Представящият получава информация от потребителя чрез изгледа. След това обработва действията на потребителя с помощта на модела, като предава резултатите обратно на изгледа. Водещият комуникира с изгледа чрез интерфейси.

Модел-изглед-модел на изглед

MVVM е съвременната еволюция на MVC. Основната цел на MVVM е да осигури ясно разделение между логиката на домейна и слоя за представяне. MVVM поддържа двупосочно свързване на данни между изгледа и изгледмодела.

Моделът MVVM ви позволява да разделите изгледа и модела на вашия код. Това означава, че когато моделът се промени, изгледът не е необходимо и обратното. С помощта на модел на изглед можете да извършвате тестване на единици и да тествате вашето логическо поведение, без да включвате вашия изглед.

Ето илюстрация как работи MVVM:

  Изображение на диаграма, която илюстрира как работи MVVM

Кога да използвате MVC, MVP и MVVM

Сега, след като научихте за всеки модел, разберете кога да ги използвате.

Кога да използвате MVC

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

Кога да използвате MVP

Можете да използвате MVP, когато приложението ви има двупосочен поток. Ако потребителските взаимодействия трябва да поискат нещо от модела и резултатът от тази заявка незабавно ще промени потребителския интерфейс, помислете за MVP.

Кога да използвате MVVM

Ще искате да използвате MVVM, когато:

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

Кой модел да изберете?

Основната причина да използвате модел на проектиране е да намалите сложността. Можете да направите това, като намалите общата сложност или като замените непознатата сложност с познатата. Ако моделът на проектиране не може да намали сложността по нито един от тези два начина, не използвайте нито един от тях; няма да добави никаква стойност.

Ако наистина сте сигурни, че трябва да използвате шаблон за проектиране, опитайте се да направите контролен списък. Базирайте го на ситуациите, които сте виждали тук, и изберете най-подходящия за вашия проект.