Sobes.tech
Junior — Middle

Können Sie erklären, was das BLoC-Muster in der Anwendungsarchitektur bedeutet?

sobes.tech KI

Antwort von AI

Das BLoC-Muster (Business Logic Component) in der Architektur von Flutter-Anwendungen ist dazu gedacht, Geschäftslogik und UI zu trennen. Es hilft, den Zustand der Anwendung zu verwalten, wodurch der Code modularer und testbarer wird.

Hauptideen von BLoC:

  • Datenströme (Streams): BLoC verwendet Streams, um Ereignisse von der UI zu übertragen und Zustände zurückzugeben.
  • Eingangsereignisse (Events): Die UI sendet Ereignisse an BLoC, z.B. einen Button-Klick.
  • Ausgangszustände (States): BLoC verarbeitet die Ereignisse und gibt neue Zustände aus, auf die die UI abonniert ist.

Beispiel eines einfachen BLoC in 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();
  }
}

Hier sendet die UI ein Ereignis an incrementSink, der BLoC erhöht den Zähler und sendet den neuen Wert in den counterStream, auf den die UI abonniert ist.