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.