Junior — Middle
Приложение архитектурасында BLoC үлгүсүнүн мааниси эмне экенин түшүндүрө аласызбы?
sobes.tech AI
AIден жооп
Flutter колдонмолорунун архитектурасында BLoC (Business Logic Component) үлгүсү бизнес логиканы жана UI-ны бөлүп көрсөтүү үчүн иштелип чыккан. Ал колдонмонун абалын башкарууга жардам берет, кодду көбүрөөк модулдуу жана тестке оңой кылат.
BLoCнин негизги идеялары:
- Маалымат агымдары (Streams): BLoC UI-дан окуяларды өткөрүү жана кайра абалдарды чыгарып берүү үчүн агымдарды (Streams) колдонуп жатат.
- Кирүү окуялары (Events): UI BLoC-га окуяларды жиберет, мисалы, кнопканы басуу.
- Чыгуу абалы (States): BLoC окуяларды иштетип, жаңы абалдарды чыгарат, аларга UI жазылат.
Dart тилинде жөнөкөй BLoC мисалы:
import 'dart:async';
class CounterBloc {
int _counter = 0;
final _stateController = StreamController<int>();
Stream<int> get counterStream => _stateController.stream;
final _eventController = StreamController<void>();
Sink<void> get incrementSink => _eventController.sink;
CounterBloc() {
_eventController.stream.listen((_) {
_counter++;
_stateController.sink.add(_counter);
});
}
void dispose() {
_stateController.close();
_eventController.close();
}
}
Бул жерде, UI incrementSink аркылуу окуя жиберет, BLoC эсептегичти көбөйтүп, жаңы маанини counterStream агымына жиберет, ал жерде UI жазылат.