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