Junior — Middle
Můžete vysvětlit mechanismus fungování vzoru BLoC v řízení stavu aplikace?
sobes.tech AI
Odpověď od AI
Vzor BLoC (Business Logic Component) se v Flutteru používá k řízení stavu aplikace, oddělením obchodní logiky od uživatelského rozhraní.
Hlavní myšlenkou je použití toků (Streams) k přenosu událostí a stavů:
- Události (Events): akce uživatele nebo externí události jsou odesílány do BLoC.
- Zpracování: BLoC přijímá události, provádí obchodní logiku a vytváří nový stav.
- Stavy (States): aktualizovaná data jsou zpět přenášena přes tok, na který se UI přihlásí.
To umožňuje, aby byl kód modulárnější, testovatelnější a udržitelnější.
Příklad zjednodušeného 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();
}
}
Uživatelské rozhraní se přihlašuje k stateStream a odesílá události do eventSink, BLoC aktualizuje stav a informuje UI.