Для чего нужен Presenter в MVP

«Для чего нужен Presenter в MVP» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Presenter в MVP служит посредником между View и Model. Он обрабатывает пользовательские действия, получает данные из Model и обновляет View, сохраняя её пассивной. Это улучшает тестируемость и разделяет ответственности.

Пример:

class LoginPresenter(private val view: LoginView) {
    fun onLoginClicked(email: String, password: String) {
        if (email.isEmpty() || password.isEmpty()) {
            view.showError("Fields cannot be empty")
            return
        }
        // Здесь была бы логика запроса к Model
        view.navigateToHome()
    }
}

Преимущества:

  • View знает только как отображать данные
  • Логика приложения изолирована в Presenter
  • Легко тестировать без Android-зависимостей