Sobes.tech
Junior — Middle

Ինչ է BLoC-ի հիմնական դերը Flutter հավելվածներում վիճակի կառավարման մեջ?

sobes.tech AI

Պատասխան AI-ից

Flutter-ում վիճակի կառավարումում BLoC (Business Logic Component)-ի հիմնական դերը բիզնես տրամաբանությունը բաժանելն է UI-ից՝ ապահովելով մաքուր ճարտարապետություն և հեշտացնելով թեստավորումը:

BLoC-ը ստանում է իրադարձություններ (events) UI-ից, մշակում դրանք, փոխում է վիճակը և նոր վիճակը վերադարձնում է UI-ին հոսքերի (Streams) միջոցով: Սա թույլ է տալիս UI-ին արձագանքել վիճակի փոփոխություններին առանց ուղիղ միջամտության տրամաբանությանը:

Այսպիսով, BLoC-ը՝

  • Կենտրոնացնում է վիճակի կառավարմանը:
  • Կոդը դարձնում է ավելի մոդուլային և վերաօգտագործելի:
  • Հեշտացնում է բիզնես տրամաբանության թեստավորումը առանձին ինտերֆեյսից:

Պարզեցված 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();
  }
}

UI-ն բաժանորդագրվում է counterStream-ին և թարմացվում է յուրաքանչյուր հաշվողի փոփոխության ժամանակ։