Sobes.tech
Junior — Middle

Оё шумо дар лоиҳаҳои худ sealed class истифода бурдаед?

sobes.tech AI

Ҷавоб аз AI

Бале, дар лоиҳаҳои Kotlin барои Android ман sealed class-ро барои моделсозии ҳиерархияҳои маҳдудшудаи ҳолатҳо ё ҳодисаҳо истифода кардам. Sealed class имкон медиҳад, ки маҷмӯи зерсинфҳоро муайян кард, ки дар вақти компилятсия маълуманд, ки ин корро осонтар мекунад бо истифода аз when бе ниёз ба навиштани шохаи else.

Масалан барои тавсифи ҳолатҳои боркунӣ:

sealed class LoadState {
    object Loading : LoadState()
    data class Success(val data: List<String>) : LoadState()
    data class Error(val error: Throwable) : LoadState()
}

fun handleState(state: LoadState) {
    when(state) {
        is LoadState.Loading -> println("Дарҳол бор карда мешавад...")
        is LoadState.Success -> println("Маълумот гирифта шуд: ${state.data}")
        is LoadState.Error -> println("Хатогӣ: ${state.error.message}")
    }
}

Ин кӯмак мекунад, ки код бехатартар ва хонданаш осонтар шавад, махсусан дар кор бо ҳолатҳои UI ё натиҷаҳои амалиётҳо.