Какие знаешь архитектурные паттерны

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

Ответ

В Android популярны MVVM, MVP, MVI и Clean Architecture.

MVVM (Model-View-ViewModel) – использует LiveData/Flow для связи View и ViewModel:

class MyViewModel : ViewModel() {  
    private val _data = MutableLiveData<String>()  
    val data: LiveData<String> = _data  
}  

MVP (Model-View-Presenter) – View пассивна, логика в Presenter:

class MyPresenter(private val view: MyView) {  
    fun loadData() { /* ... */ }  
}  

MVI (Model-View-Intent) – односторонний поток данных (State + Reducer).

Clean Architecture – разделение на слои (Data, Domain, Presentation) с зависимостями внутрь.

Выбор зависит от проекта: MVVM + Jetpack – стандарт, MVI для сложных стейтов, Clean для масштабирования.