Junior — Middle
Kas saaksite loetleda ja kirjeldada korutinates ahelate ehitamise mustreid?
sobes.tech AI
Vastus AI-lt
Android (Kotlin) korutinates kasutatakse sageli järgmisi mustreid kettide ehitamiseks:
-
Järjepidev täitmine (Järjepidev ahel): korutinaid kutsutakse üksteise järel, kus eelneva tulemus kasutatakse järgmisel.
-
Paralleelne täitmine koos tulemuste kogumisega (Paralleel koos kogumisega): mitu korutinat käivitatakse paralleelselt async abil ning tulemused kogutakse pärast await.
-
Vigade käsitlemine ahelas (Vigade käsitlemine): kasutades try/catch korutinate sees, et hallata erandeid igal etapil.
-
Andmevoogude teisendamine (Flow ahel): Flow kasutamine reaktiivsete ahelate loomiseks koos operaatoritega nagu map, filter, flatMap ja teised.
Näide järjestikustest ahelatest:
suspend fun fetchData(): Data = ...
suspend fun processData(data: Data): ProcessedData = ...
suspend fun saveData(processedData: ProcessedData) = ...
suspend fun chain() {
val data = fetchData()
val processed = processData(data)
saveData(processed)
}
Näide paralleelsest ahelast:
coroutineScope {
val deferred1 = async { fetchData1() }
val deferred2 = async { fetchData2() }
val result1 = deferred1.await()
val result2 = deferred2.await()
// tulemuste ühendamine
}