Sobes.tech
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
}