Ответ
-
MVC (Model-View-Controller) – классический паттерн, где View отображает данные, Controller обрабатывает логику, Model хранит данные. В Android Activity/Fragment часто совмещает View и Controller, что приводит к раздуванию кода.
-
MVP (Model-View-Presenter) – более четкое разделение: View (Activity/Fragment) отвечает за UI, Presenter – за логику, Model – за данные. Пример:
class MainPresenter(private val view: MainView) {
fun loadData() {
val data = Model.getData()
view.showData(data)
}
}
-
MVI (Model-View-Intent) – односторонний поток данных. View отправляет Intent (действия), Model обрабатывает и возвращает State, View отображает его. Используется с Kotlin Flow/RxJava.
-
Clean Architecture – не строго MV*, но часто комбинируется с MVP/MVVM. Разделение на слои (Domain, Data, Presentation) для улучшения тестируемости и поддержки.