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.