Sobes.tech
Junior — Middle

Môžete vysvetliť, čo znamená vzor BLoC v architektúre aplikácie?

sobes.tech AI

Odpoveď od AI

Vzorka BLoC (Business Logic Component) v architektúre Flutter aplikácií je navrhnutá tak, aby oddelila obchodnú logiku od používateľského rozhrania. Pomáha spravovať stav aplikácie, čím robí kód modulárnejším a ľahšie testovateľným.

Hlavné myšlienky BLoC:

  • Dátové prúdy (Streams): BLoC používa prúdy (Streams) na prenos udalostí z UI a na emitovanie stavov späť.
  • Vstupné udalosti (Events): UI posiela udalosti do BLoC, napríklad stlačenie tlačidla.
  • Výstupné stavy (States): BLoC spracováva udalosti a vydáva nové stavy, na ktoré je UI prihlásené.

Príklad jednoduchého BLoC v 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();
  }
}

Tu, UI posiela udalosť do incrementSink, BLoC zvýši čítač a odošle novú hodnotu do prúdu counterStream, na ktorý je UI prihlásené.