Sobes.tech
Middle

İsti və soyuq axınlar arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

İsitici (Hot) axınlar:

  • Gözətçilərin mövcudluğundan asılı olmayaraq aktivdirlər.
  • Abunəlikdən dərhal sonra ən son mövcud olan məlumatları təqdim edir.
  • Nümunələr: LiveData, StateFlow, SharedFlow.

Soyuq (Cold) axınlar:

  • Yalnız ən azı bir müşahidəçi olduqda aktivdirlər.
  • Hər yeni abunə üçün logikanı icra edirlər.
  • Nümunələr: Flow, Sequence.

StateFlow xüsusi SharedFlow-dur və son dəyəri yadda saxlayır. SharedFlow-u replay=1 tamponu ilə StateFlow kimi konfiqurasiya etmək mümkündür.

Əsas fərqlər:

Əməliyyat İsitici axın Soyuq axın
Aktivlik Həmişə Abunəliklə
Logikanın icrası Bir dəfə Hər abunə üçün
Vəziyyətin yadda saxlanması Bəli (LiveData, StateFlow, SharedFlow ilə replay) Xeyr (standart)
Çox istifadəçi Bəli Xeyr (hər abunəçi ayrıca nüsxə alır)

İsitici axınlar UI vəziyyətini və ya ümumi məlumatları təqdim etmək üçün istifadə olunur. Soyuq axınlar isə abunəlik zamanı şəbəkə sorğuları və ya verilənlər bazası sorğuları kimi əməliyyatları həyata keçirmək üçün istifadə olunur.

Soyuq axın nümunəsi:

// Bu axın yalnız abunəçi olduqda məlumat yükləyəcək
fun loadData(): Flow<Data> = flow {
    // Burada məlumatların yüklənməsi baş verir
    emit(NetworkApi.getData())
}

İsitici axın nümunəsi (StateFlow):

// Bu axın həmişə dəyərə malikdir və abunəlik üçün mövcuddur
val uiState: StateFlow<UiState> = MutableStateFlow(LoadingUiState)

fun updateState(newState: UiState) {
    uiState.value = newState
}