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-га кабар берет.