MVP (Model-View-Presenter) — шаблон проектирования пользовательского интерфейса, который был разработан для облегчения автоматического
модульного тестирования и улучшения
разделения ответственности в презентационной логике (отделения логики от отображения):
- Модель (Model) — предоставляет данные для пользовательского интерфейса.
- Представление (View) — реализует отображение данных (Модели) и маршрутизацию пользовательских команд или событий Presenterʼу.
- Presenter — управляет Моделью и Представлением. Например извлекает данные из Модели и форматирует их для отображения в Представлении.
Обычно экземпляр Представления создаёт экземпляр Presenterʼа, передавая ему ссылку на себя. При этом Presenter работает с Представлением в абстрактном виде, через его
интерфейс. Когда вызывается событие Представления, оно вызывает конкретный метод Presenterʼа, не имеющего ни параметров, ни возвращаемого значения. Presenter получает необходимые для работы метода данные о состоянии пользовательского интерфейса через интерфейс Представления и через него же передаёт в Представление данные из Модели и другие результаты своей работы.
Библиотеки:- Mosby - A Model-View-Presenter library for modern Android apps.
- Moxy - Moxy is a library that help to use MVP pattern when you do the Android Application.
- Mortar - A simple library that makes it easy to pair thin views with dedicated controllers, isolated from most of the vagaries of the Activity life cycle.
Статьи:Код:Видео: