Різниця між MVVM та MVP

Метою розробки програмного забезпечення є побудова рішень, що вирішують потреби та проблеми для користувачів та підприємств. Для цього потрібні різні технології та структури архітектури Модель-View-ViewModel (MVVM) і Презентація моделі-перегляду (MVP) використовуються.

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

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

Структура програмного забезпечення

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

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

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

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

Шаблони архітектури

Модельний контролер (MVC) була однією з перших архітектурних моделей, розроблених для веб-додатків, що набирала популярності з середини до кінця дев'яностих років, особливо для спільноти Java.

Нові рамки, такі як Django для Python та Rails (Ruby on Rails), мають сильний акцент на швидкому розгортанні, саме тому MVC займає частку ринку як велику привабливість архітектурних моделей..

Традиційно розробка інтерфейсу користувача містила багато коду для обробки складної логіки, тому структури архітектури були розроблені для зменшення коду на рівні користувальницького інтерфейсу (UI), роблячи його більш "чистим" та керованим.

Отже, за схемою MVC складається веб-додаток

  • Модель (дані)
  • Вид (інтерфейс для перегляду та обробки даних)
  • Контролер (операції та дії, що виконуються на даних)

The Модель обробляє дані та логіку бізнесу, і є ні залежності між Модель і Контролер або Вид.

The Вид представляє користувачеві дані у підтримуваному форматі та потрібному макеті та коли Контролер отримує запити користувачів (для отримання даних), він викликає відповідні ресурси, необхідні для завершення запиту.

Давайте застосуємо цю схему для побудови інтернет-магазину книг.

Користувачі можуть шукати, переглядати, реєструвати та купувати книги, а також керувати своїми профілями та списками книг. Коли користувач натискає категорію SCI-FI, всі пов'язані книги повинні відображатися як доступні.

The Контролери обробляти дії, якими керують книги (список, додавання, перегляд тощо). Їх може бути кілька Контролери з одним головним Контролер "спрямування трафіку".

Для цього прикладу Контролер називається controller_books.php і Модель (наприклад, model_books.php) обробляє дані та логіку, пов'язані з книгами.

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

The controller_books.php отримує дію (запит користувача) від головного Контролер (напр. index.php). The controller_books.php аналізує запит і викликає model_books.php (дані) для повернення списку книг SCI-FI.

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

Це основи моделі MVC, яка еволюціонувала нерестуючими варіантами моделей архітектури, таких як Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Hierarchical-Model-View-Controller (HMVC), та адаптер для перегляду моделі (MVA) тощо.

MVP Pattern

Презентація моделі-перегляду (MVP)

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

Екран - це Перегляд, дані, які він відображає, - Модель, а Ведучий з’єднує обох разом.

MVP включає наступні компоненти з окремими обов'язками:

  • Модель (визначає дані, які відображатимуться)
  • Вид (відображає дані з Моделі та маршрутизує запити користувачів до Презентатора).
  • Ведучий (взаємодіє між Представленням та Моделлю і з'єднує їх разом)

The Вид (веб-сторінка) відображає та керує елементами керування сторінкою, пересилаючи події (запити користувачів) на Ведучий які були ініційовані в Вид.

The Ведучий реагує на ці події шляхом читання та оновлення Модель змінити Вид і, отже, Ведучі відповідальність полягає в прив'язуванні Модель і Вид.

Після огляду MVC і MVP Спільність є обома окремими обов'язками для кожного компонента і вони сприяють розділенню між Вид (UI) та Модель (дані). Значні відмінності між цими зразками більш очевидні в тому, як вони реалізуються.

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

MVVM Шаблон

Модель-View-ViewModel (MVVM)

The МВВМ візерунок був спеціально розроблений для Windows Presentation Foundation (WPF) та платформ Microsoft Silverlight, і його можна використовувати на всіх XAML [i] платформи.

WPF - це система Microsoft, яка надає користувальницькі інтерфейси в програмах на базі Windows і вперше була випущена в .NET Framework 3.0.

МВВМ було вдосконалено з MVC і в цій схемі Вид працює з поведінкою, подіями та прив'язкою даних та Вид синхронізується з ViewModel (що дозволяє розділити презентацію та розкриває методи та команди для управління та маніпулювання Модель.

МВВМ складається з трьох основних компонентів:

  • Модель (представляє дані з валідацією та логікою бізнесу)
  • Вид (Вигляд відповідає за визначення структури, компонування та зовнішнього вигляду того, що бачить користувач на екрані. В ідеалі подання визначається виключно за допомогою XAML, з обмеженим кодом, який не містить бізнес-логіки. зв'язування між Вид і ViewModel щоб відобразити можливості синхронізації моделі та ViewModel з видом)
  • ViewModel (відокремлює вигляд від моделі та розкриває методи та команди для маніпулювання даними (модель).

The Вид отримує дані від ViewModel (за допомогою прив'язки даних та методів), а також під час виконання Вид зміниться при реагуванні на події в ViewModel.

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

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

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

Як згадувалося раніше с MVP, простим рішенням не потрібні структури архітектури та дизайну, як-от "Hello World!" занадто елементарно, щоб слідувати будь-якій схемі; однак, коли вводиться більше функцій, функцій та компонентів, складність програми збільшується, а також збільшується кількість коду, яким потрібно керувати.

Підсумки

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

Ілюстрована різниця між шаблонами MVP та MVVM:

  • В обох MVP і МВВМ, то Вид є точкою входу до програми
  • В MVP, існує однозначне відображення між Вид і Ведучий, де в МВВМ, відносини є один-до-багатьох між Вид і ViewModel.
  • MVP використовується в першу чергу для Windows Forms та додатків Windows Phone та МВВМ розроблений для Silverlight, WPF, Knockout / AngularJS тощо.