Ответ
Паттерны Presentation слоя (MVP, MVVM, MVI) помогают разделить ответственности, упростить тестирование и поддержку кода. Они отделяют бизнес-логику от UI, делая приложение более масштабируемым и гибким.
Пример MVVM с LiveData:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun loadData() {
_data.value = "Loaded data"
}
}
class MyActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.data.observe(this) { data ->
textView.text = data
}
}
}
Плюсы:
- Четкое разделение слоев
- Проще тестировать (ViewModel не зависит от Android API)
- Автоматическая обработка конфигураций (например, поворот экрана)