Sobes.tech
Junior — Middle

Kun je het werkingsmechanisme van het BLoC-patroon in het beheer van de status van de applicatie uitleggen?

sobes.tech AI

Antwoord van AI

Het BLoC-patroon (Business Logic Component) wordt in Flutter gebruikt om de toestand van de applicatie te beheren, waarbij de bedrijfslogica wordt gescheiden van de gebruikersinterface.

Het belangrijkste idee is het gebruik van streams (Streams) om gebeurtenissen en toestanden over te dragen:

  • Gebeurtenissen (Events): gebruikersacties of externe gebeurtenissen worden naar de BLoC gestuurd.
  • Verwerking: de BLoC ontvangt de gebeurtenissen, voert de bedrijfslogica uit en vormt een nieuwe toestand.
  • Toestanden (States): de bijgewerkte gegevens worden teruggestuurd via de stroom, waarop de UI zich abonneert.

Dit maakt de code meer modulair, testbaar en onderhoudbaar.

Voorbeeld van een vereenvoudigde 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();
  }
}

De UI abonneert zich op stateStream en stuurt gebeurtenissen naar eventSink, de BLoC werkt de toestand bij en informeert de UI.