Junior — Middle
Poți explica mecanismul de funcționare al pattern-ului BLoC în gestionarea stării aplicației?
sobes.tech AI
Răspuns de la AI
Modelul BLoC (Business Logic Component) este utilizat în Flutter pentru gestionarea stării aplicației, separând logica de business de UI.
Ideea principală este utilizarea fluxurilor (Streams) pentru transmiterea evenimentelor și stărilor:
- Evenimente (Events): acțiuni ale utilizatorului sau evenimente externe sunt trimise în BLoC.
- Procesare: BLoC primește evenimentele, execută logica de business și formează o nouă stare.
- Stări (States): datele actualizate sunt trimise înapoi prin flux, la care UI-ul este abonat.
Acest lucru permite ca codul să fie mai modular, testabil și ușor de întreținut.
Exemplu de BLoC simplificat:
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 se abonează la stateStream și trimite evenimente în eventSink, BLoC actualizează starea și notifică UI-ul.