Sobes.tech
Junior — Middle

Программанын абалынын башкарылуусунда BLoC үлгүсүнүн иштөө механизмин түшүндүрө аласызбы?

sobes.tech AI

AIден жооп

Flutter-дөгү BLoC (Business Logic Component) үлгүсү колдонулат тиркеменин абалын башкаруу үчүн, бизнес логиканы UI-дан бөлүп туруп.

Негизги идея — иш-чаралар (Events) жана абалдар (States) үчүн потокторду (Streams) колдонуу:

  • Иш-чаралар (Events): колдонуучу аракеттери же тышкы иш-чаралар BLoC-ге жөнөтүлөт.
  • Ишке ашыруу: BLoC иш-чараларды кабыл алат, бизнес логиканы аткарат жана жаңы абалды түзөт.
  • Абалы (States): жаңыланган маалыматтар кайра поток аркылуу жөнөтүлөт, UI ага жазылат.

Бул кодду көбүрөөк модулдуу, тестирлөөчү жана оңой кароо мүмкүнчүлүгүн берет.

Жөнөкөйлөштүрүлгөн BLoC мисалы:

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();
  }
}

UI stateStream-ге жазылат жана иш-чараларды eventSink аркылуу жөнөтөт, BLoC абалды жаңыртат жана UI-га кабар берет.