Какие есть недостатки паттерна MVP

Вот несколько минусов MVP в Android-разработке

  1. Круговая зависимость View и Presenter. У View есть ссылка на Presenter, а у Presenter есть ссылка на View. Обычно это не так плохо, но стоит вспомнить, что в Андроид View — это как правило активити или фрагмент, у которых есть жизненный цикл. Поэтому необходимо создавать новый презентер при создании активити/фрагмента и уничтожать при их уничтожении. Если этого не делать, то может случиться утечка активити.
  2. Слишком большой интерфейс для работы с View. Как правило в андроид-разработке Presenter делают отдельным модулем, у которого нет доступа к Android SDK. То есть это plain Java/Kotlin Library. И для взаимодействия с View создают интерфейс IView, реализация которого будет передаваться в конструктор Presenter. Наша активити/фрагмент будут реализовывать данный интерфейс, и при создании Presenter будут передавать в конструктор самих себя.

А теперь представим что у нас экран с кучей элементов, каждый из которых выполняет свою функцию. Получается раздутый интерфейс IView, который будет очень сложно поддерживать. Зачастую данную проблему решают разбиением экрана между разными презентерами, у каждого из которых свой IView, но даже так получается не очень удобная схема

Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *