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