Сохранение ссылки на представление (View) в презентере (Presenter) в паттерне MVP может привести к следующим недостаткам:
- Утечки памяти: Если жизненный цикл представления короче, чем жизненный цикл презентера, и презентер продолжает удерживать ссылку на уничтоженное представление, это приводит к утечке памяти.
- Сильная связанность: Презентер становится тесно связанным с конкретной реализацией представления, что затрудняет Unit-тестирование презентера и переиспользование его с разными представлениями (например, с фрагментом и активностью). Нарушается принцип "Separation of Concerns".
- Сложность тестирования: Для тестирования презентера приходится мокировать или создавать фиктивные реализации всего интерфейса представления, что может быть громоздко и неочевидно.
- Затруднение асинхронных операций: Работа с представлением после завершения асинхронной операции (например, сетевого запрос