Junior — Middle
Tudná leírni a modell lépéseinek sorozatát az MVI architektúrában?
sobes.tech MI
Válasz az MI-től
Az MVI (Model-View-Intent) architektúrában a modell felelős az állapot tárolásáért és az üzleti logika feldolgozásáért. A modell műveleteinek sorrendje általában a következő:
- Szándékok (Intent) fogadása a nézetből — felhasználói műveletek vagy események.
- Ezeknek a szándékoknak a feldolgozása, az üzleti logika végrehajtása és a tárolókkal vagy adatforrásokkal való interakció.
- Új állapot (State) generálása a feldolgozás alapján.
- A frissített állapot visszaküldése a nézetnek a megjelenítéshez.
Egyszerűsített ciklus példája:
sealed class Intent {
object LoadData : Intent()
data class Submit(val input: String) : Intent()
}
data class State(val data: List<String>, val isLoading: Boolean)
class Model {
private var state = State(emptyList(), false)
fun process(intent: Intent): State {
when (intent) {
is Intent.LoadData -> {
state = state.copy(isLoading = true)
// adatok betöltése
state = state.copy(data = listOf("item1", "item2"), isLoading = false)
}
is Intent.Submit -> {
// bemenet feldolgozása
}
}
return state
}
}
Ezért a modell az egyetlen igazságforrás az UI állapotára.