Ответ
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-зависимостей