С какими MV паттернами работал

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

Ответ

Работал с MVC, MVP, MVVM и MVI.

MVP – разделял логику на View (Activity/Fragment) и Presenter (бизнес-логика). Пример:

class MainPresenter(private val view: MainView) {  
    fun loadData() {  
        // Business logic  
        view.showData(data)  
    }  
}  

MVVM – использовал ViewModel + LiveData/Flow для реактивного UI.

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

    fun loadData() {  
        _data.value = "Loaded"  
    }  
}  

MVI – однопоточный state management (например, с StateFlow).