Sobes.tech
Junior — Middle
78

Можешь ли ты описать ключевые характеристики паттерна MVP?

Компании, где спрашивали
ТехзорТехзор

Ответ от нейросети

sobes.tech AI

Паттерн MVP (Model-View-Presenter) разделяет логику приложения на три компонента:

  • Model — отвечает за данные и бизнес-логику, взаимодействует с базой данных или сетью.
  • View — отображает данные пользователю и передаёт пользовательские действия Presenter'у.
  • Presenter — посредник между Model и View, обрабатывает пользовательский ввод, обновляет View и запрашивает данные у Model.

Ключевые характеристики:

  • Чёткое разделение ответственности, что облегчает тестирование и поддержку.
  • View пассивна и не содержит логики, только отображение.
  • Presenter не зависит от конкретной реализации View, что повышает гибкость.

Пример в Android:

interface LoginView {
    fun showLoading()
    fun showError(message: String)
    fun navigateToHome()
}

class LoginPresenter(private val view: LoginView, private val model: UserModel) {
    fun login(username: String, password: String) {
        view.showLoading()
        if (model.authenticate(username, password)) {
            view.navigateToHome()
        } else {
            view.showError("Неверные данные")
        }
    }
}