Junior — Middle
Tətbiqin vəziyyətinin idarə olunmasında BLoC nümunəsinin işləmə mexanizmini izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Flutter-da tətbiqin vəziyyətini idarə etmək üçün BLoC (Business Logic Component) nümunəsi istifadə olunur və bu, biznes məntiqini UI-dən ayırır.
Əsas fikir, hadisələr və vəziyyətlər üçün axınlar (Streams) istifadə etməkdir:
- Hadisələr (Events): istifadəçi fəaliyyətləri və ya xarici hadisələr BLoC-ə göndərilir.
- İşləmə: BLoC hadisələri qəbul edir, biznes məntiqini yerinə yetirir və yeni vəziyyət yaradır.
- Vəziyyətlər (States): yenilənmiş məlumatlar geri axın vasitəsilə göndərilir və UI ona abunə olur.
Bu, kodu daha modulyar, test edilə bilən və saxlanması asan edir.
Sadəlaşdırılmış BLoC nümunəsi:
class CounterBloc {
final _eventController = StreamController<void>();
final _stateController = StreamController<int>();
int _count = 0;
StreamSink<void> get eventSink => _eventController.sink;
Stream<int> get stateStream => _stateController.stream;
CounterBloc() {
_eventController.stream.listen((_) {
_count++;
_stateController.sink.add(_count);
});
}
void dispose() {
_eventController.close();
_stateController.close();
}
}
İstifadəçi interfeysi stateStream-ə abunə olur və hadisələri eventSink-ə göndərir, BLoC vəziyyəti yeniləyir və UI-ni məlumatlandırır.