Sobes.tech
Junior — Middle

Ako hodnotíte svoju úroveň znalostí a skúseností s architektonickým vzorcom BLoC?

sobes.tech AI

Odpoveď od AI

BLoC (Business Logic Component) — architektonický vzor široko používaný vo Flutteri na oddelenie obchodnej logiky od UI. Je založený na dátových tokoch (Streams) a reaktívnom programovaní.

Vzor umožňuje:

  • Oddeliť logiku od widgetov.
  • Riadiť stav prostredníctvom tokov udalostí a stavov.
  • Zabezpečiť testovateľnosť a opätovné použitie kódu.

V typickom BLoC je:

  • Vstupné udalosti (Sink), ktoré UI posiela do BLoC.
  • Tok stavov (Stream), na ktorý sa UI prihlási na aktualizáciu rozhrania.

Príklad jednoduchého BLoC:

class CounterBloc {
  final _counterController = StreamController<int>();
  int _counter = 0;

  Stream<int> get counterStream => _counterController.stream;

  void increment() {
    _counter++;
    _counterController.sink.add(_counter);
  }

  void dispose() {
    _counterController.close();
  }
}

Používam BLoC na správu stavu v stredne zložitých aplikáciách, kde je dôležité jasne oddeliť logiku od UI, a tiež na uľahčenie testovania obchodnej logiky.