Что такое MVP

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

Ответ

MVP (Model-View-Presenter) — это архитектурный паттерн для разделения логики приложения на три слоя:

  • Model — отвечает за данные и бизнес-логику.
  • View — отображает UI и передает действия пользователя Presenter’у.
  • Presenter — связывает Model и View, обрабатывает логику представления.

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

  • Четкое разделение ответственности.
  • Упрощает тестирование (Presenter не зависит от Android API).
  • Уменьшает связность кода.

Пример:

// View (Activity/Fragment)
class MainActivity : AppCompatActivity(), MainView {
    override fun showData(data: String) {
        textView.text = data
    }
}

// Presenter
class MainPresenter(private val view: MainView) {
    fun loadData() {
        val data = Model().getData() // Model
        view.showData(data)
    }
}

// Model
class Model {
    fun getData() = "Hello MVP!"
}