Junior — Middle
Pouvez-vous expliquer le mécanisme de fonctionnement du pattern BLoC dans la gestion de l'état de l'application?
sobes.tech IA
Réponse de l'IA
Le modèle BLoC (Business Logic Component) est utilisé dans Flutter pour gérer l'état de l'application, en séparant la logique métier de l'interface utilisateur.
L'idée principale est d'utiliser des flux (Streams) pour transmettre des événements et des états:
- Événements (Events): actions de l'utilisateur ou événements externes sont envoyés au BLoC.
- Traitement: le BLoC reçoit les événements, exécute la logique métier et forme un nouvel état.
- États (States): les données mises à jour sont renvoyées via le flux, auquel l'UI est abonnée.
Cela permet de rendre le code plus modulaire, testable et maintenable.
Exemple d'un BLoC simplifié:
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();
}
}
L'UI s'abonne à stateStream et envoie des événements à eventSink, le BLoC met à jour l'état et en informe l'UI.