Ответ
В Android популярны несколько архитектурных паттернов:
-
MVP (Model-View-Presenter)
- View пассивна, Presenter обрабатывает логику.
- Пример:
class MainPresenter(private val view: MainView) {
fun loadData() {
val data = Repository.getData()
view.showData(data)
}
}
-
MVVM (Model-View-ViewModel)
- Использует DataBinding/ViewBinding и LiveData/Flow.
- ViewModel хранит состояние UI.
class MainViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun loadData() {
_data.value = Repository.getData()
}
}
-
MVI (Model-View-Intent)
- Односторонний поток данных (Intent → Model → View).
- Состояние UI иммутабельно.
-
Clean Architecture
- Слои: Presentation, Domain, Data.
- Зависимости направлены внутрь (Domain не знает о Data).
-
Redux (редко, но встречается)
- Единое хранилище состояния и редьюсеры.
Выбор зависит от сложности проекта:
- MVP — для простых приложений.
- MVVM/MVI — для реактивных интерфейсов.
- Clean Architecture — для масштабируемости.