MVP разделяет ответственность за бизнес логику и логику отображения.
MVP состоит из следующих частей:
• Model представляет собой данные, которые необходимо показать пользователю. В большинстве Android-приложений моделью выступает слой, отвечающий за получение данных с бэкэнда.
• View – это класс, отвечающий за отображение данных. В Android-приложениях View – это обычно
Activity
или Fragment
. Кроме того View слушает пользовательские ивенты и делегирует их обработку в Presenter.
Например View может иметь такой код:
loginButton.setOnClickListener { presenter.onLoginClicked() }
• Presenter – это класс, который имеет ссылки и на View, и на Model, и расположен между ними. Presenter отвечает за обработку ивентов, приходящих из View, получение данных из Model и обновление View c полученными данными.
В Android-приложениях хорошей практикой считается делать Presenter независимым от Android SDK. Другими словами Presenter не имеет доступа к Android классам напрямую и может быть использован в plain java приложении.
Подробнее о MVP