Ответ
MVP (Model-View-Presenter) — это архитектурный паттерн, разделяющий приложение на три слоя:
- Model — отвечает за данные и бизнес-логику.
- View — отображает UI и передает пользовательские действия в Presenter.
- Presenter — посредник между Model и View, обрабатывает логику отображения.
Особенности:
- View пассивная — только рисует UI, не содержит логики.
- Presenter не знает о Android-контексте — упрощает тестирование.
- Связь View-Presenter через интерфейсы — уменьшает связность.
Пример:
// View
interface LoginView {
fun showError(message: String)
fun onLoginSuccess()
}
// Presenter
class LoginPresenter(private val view: LoginView) {
fun login(username: String, password: String) {
if (username.isEmpty()) view.showError("Empty username")
else view.onLoginSuccess()
}
}