Разница между шаблоном архитектуры MVC и MVVM в Android

Опубликовано: 1 Декабря, 2021

Разработчики всегда предпочитают разработку приложения для Android с применением шаблона архитектуры программного обеспечения. Шаблон архитектуры придает модульность файлам проекта и гарантирует, что все коды будут охвачены модульным тестированием. Это облегчает разработчикам задачу по сопровождению программного обеспечения и расширению функций приложения в будущем. MVC (Модель - Представление - Контроллер) и MVVM (Модель - Представление - ViewModel) - две самые популярные архитектуры Android среди разработчиков.

Шаблон "Модель — Представление — Контроллер" (MVC)

Шаблон MVC предлагает разделить код на 3 компонента. При создании класса / файла приложения разработчик должен разделить его на один из следующих трех уровней:

  • Модель: этот компонент хранит данные приложения. Он ничего не знает об интерфейсе. Модель отвечает за обработку логики предметной области (бизнес-правила реального мира) и взаимодействие с базой данных и сетевыми уровнями.
  • Представление: это слой пользовательского интерфейса (пользовательского интерфейса), который содержит компоненты, видимые на экране. Кроме того, он обеспечивает визуализацию данных, хранящихся в модели, и предлагает взаимодействие с пользователем.
  • Контроллер: этот компонент устанавливает связь между представлением и моделью. Он содержит основную логику приложения, получает информацию об ответе пользователя и обновляет Модель в соответствии с потребностями.

Модель - представление - шаблон ViewModel (MVVM)

Шаблон MVVM имеет некоторое сходство с шаблоном проектирования MVP (Модель - Представление - Презентатор), поскольку роль Презентатора играет ViewModel. Однако недостатки шаблона MVP были устранены с помощью MVVM. Он предлагает отделить логику представления данных (представления или пользовательский интерфейс) от основной части бизнес-логики приложения. К отдельным слоям кода MVVM относятся:

  • Модель: этот уровень отвечает за абстракцию источников данных. Модель и ViewModel работают вместе, чтобы получить и сохранить данные.
  • Представление: цель этого уровня - информировать ViewModel о действиях пользователя. Этот уровень соответствует ViewModel и не содержит никакой логики приложения.
  • ViewModel: предоставляет те потоки данных, которые имеют отношение к View. Более того, он служит связующим звеном между моделью и представлением.

Разница между шаблоном проектирования MVC и MVVM

MVC (Контроллер представления модели)

MVVM (модель представления ViewModel)

Самая старая архитектура приложений для Android. Признанный в отрасли образец архитектуры для приложений.
Пользовательский ввод обрабатывается контроллером . Представление принимает ввод от пользователя и действует как точка входа в приложение.
Контроллер и представление существуют с отношением «один ко многим». Один контроллер может выбрать другой вид в зависимости от требуемой операции. Множественное представление можно сопоставить с помощью одной модели представления, и, таким образом, между представлением и моделью представления существует отношение «один ко многим».
Представление ничего не знает о Контроллере . Представление имеет ссылку на ViewModel .
Эта архитектура сильно зависит от API Android. Имеет слабую или нулевую зависимость от Android API.
Трудно вносить изменения и модифицировать функции приложения, поскольку слои кода тесно связаны. Легко вносить изменения в приложение. Однако, если логика привязки данных слишком сложна, отладить приложение будет немного сложнее.
Ограниченная поддержка модульного тестирования. Тестируемость модулей самая высокая в этой архитектуре.
Он не следует принципу модульности и единой ответственности. Следует принципу модульности и единой ответственности.
Хотите более динамичную и конкурентную среду для изучения основ Android?
Щелкните здесь, чтобы перейти к уникальному руководству, составленному нашими экспертами с целью мгновенно подготовить вашу отрасль!