Junior — Middle
Môžete vysvetliť, čo znamená vzor BLoC v architektúre aplikácie?
sobes.tech AI
Odpoveď od AI
Vzorka BLoC (Business Logic Component) v architektúre Flutter aplikácií je navrhnutá tak, aby oddelila obchodnú logiku od používateľského rozhrania. Pomáha spravovať stav aplikácie, čím robí kód modulárnejším a ľahšie testovateľným.
Hlavné myšlienky BLoC:
- Dátové prúdy (Streams): BLoC používa prúdy (Streams) na prenos udalostí z UI a na emitovanie stavov späť.
- Vstupné udalosti (Events): UI posiela udalosti do BLoC, napríklad stlačenie tlačidla.
- Výstupné stavy (States): BLoC spracováva udalosti a vydáva nové stavy, na ktoré je UI prihlásené.
Príklad jednoduchého BLoC v Dart:
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();
}
}
Tu, UI posiela udalosť do incrementSink, BLoC zvýši čítač a odošle novú hodnotu do prúdu counterStream, na ktorý je UI prihlásené.