Перейти к содержимому
Меню
  • Java SE
  • Android
  • Поиск
  • Java SE
  • Android

JAVA-HELP

Сайт для Java разработчиков

MVP в Android. Часть 1

Архитектурные шаблоны являются важнейшей частью ПО. Они помогают сохранить код в чистоте, сделать его расширяемым и тестируемым. Шаблоны постоянно меняются и в Android на смену Model View Controller приходит Model View Presenter.

В первой части этой статьи мы обсудим основные различия между MVC (Model View Controller) и MVP (Model View Presenter), почему в MVC уступает MVP и какие у второй модели есть преимущества.

Android SDK

Когда мы анализируем Android SDK и зависимости между лейаутами, активити и данными, то нам кажется, что Android идеально соответствует модели MVC. Однако при увеличении размера и сложности проекта, решение, которое предлагает MVC становится недостаточным. Особенно это становится заметным при попытке внедрения unit-тестов в проект.

Однако Android позволяет применять нам другие типы архитектур. Хотя MVC довольно распространенное и надежное решение, все же оно сдает позиции своему младшему брату MVP, который более четко разделяет зоны ответственности компонентов приложения.

Что мне использовать: MVP или MVC?

Нет точного ответа на этот вопрос. Некоторые люди будут полагать, что MVC — самое правильное решение, другие будут придерживаться MVP, а некоторые вообще будут склоняться к другому решению, например, MVVM. У каждого из этих подходов есть преимущества и недостатки. Это означает, что единственный способ ответить на вопрос — это понять плюсы и минусы каждого решения. Таким образом, вы можете сделать свой выбор более осознанно.

Разница между MVP и MVC

Вот основные отличия (или даже преимущества) MVP модели от MVC:

  • View сильнее отделена от модели, а Presenter является посредниками между ними
  • Легче писать unit-тесты
  • Как правило, для каждого View существует свой Presenter

А вот особенности MVC:

  • Controller может взаимодействовать с несколькими View
  • View может напрямую общаться с моделью

Model View Presenter (MVP) в Android

Android не определяет зоны ответственности между компонентами приложения, поэтому вся логика работы с UI и данными приложения описана внутри одной Activity, что не позволяет сделать приложение расширяемым и легко тестируемым. Использование MVP позволяет решить эту проблему.

KRAK9.AT.

Лучший способ реализации шаблона MVP

Есть много интересных подходов для реализации MVP, но не зависимо от выбранного решения должны сохранятся три компонента:

Presenter

Presenter выступает в качестве посредника между View и Model. Он извлекает данные из модели и передает их во View. Но в отличие от типичного MVC, он также решает, что нужно делать, когда вы взаимодействуете с View.

View

View, как правило, реализуется в Activity, которая содержит ссылку на презентер. Единственное, что делает View, это вызывает методы презентера при каком-либо действии пользователя

Model

Model рассматривается в качестве поставщика данных, которые будут отображаться во View.

В следующей статье этой серии, мы реализуем шаблон Model-View-Presenter в Android.

Источник: MVP in Android

Категории
  • Уроки Android
Метки
  • mvp
Предыдущая заметка

Я хочу программировать под Android. Вопрос #4

Следующая заметка

Я хочу программировать под Android. Вопрос #5

Рубрики

  • Android
    • Android-библиотеки
    • Android-сниппеты
    • Material Design
    • Инструменты разработчика
    • Уроки Android
  • Java SE
    • Java-сниппеты
    • Изучение Java
    • Обзор Java-классов
    • Основы Java
  • Kotlin

Популярные записи

  • Загрузка изображений с помощью библиотеки Glide. Начало работы
  • Руководство по использованию ORM DBFlow в Android-приложении
  • Анимированный Toolbar: фичи Design Support Library
  • Я хочу программировать под Android. Вопрос #5
  • Используем ACRA в своем приложении

Copyright © 2020– JAVA-HELP. Все права защищены. Политика конфиденциальности