Sobes.tech
Junior — Middle

Ինչպե՞ս եք գնահատում ձեր գիտելիքների և փորձի մակարդակը BLoC ճարտարապետական դիզայնի հետ աշխատելու համար։

sobes.tech AI

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

BLoC (Business Logic Component) — լայնորեն կիրառվող ճարտարապետական նմուշ Flutter-ում, որը թույլ է տալիս բաժանել բիզնես տրամաբանությունը և UI-ն։ Այն հիմնված է տվյալների հոսքերի (Streams) և ռեակտիվ ծրագրավորման վրա։

Նմուշը թույլ է տալիս.

  • Բաժանել տրամաբանությունը վիդջեթներից։
  • Կառավարել վիճակը իրադարձությունների և վիճակների հոսքերի միջոցով։
  • ապահովել կոդի թեստավորման և վերաօգտագործման հնարավորությունը։

Տիպիկ BLoC-ում կան.

  • Ներմանային իրադարձություններ (Sink), որոնք UI-ն ուղարկում է BLoC-ին։
  • Վիճակի հոսք (Stream), որի վրա UI-ն բաժանորդագրվում է՝ ինտերֆեյսը թարմացնելու համար։

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

Կիրառում եմ BLoC-ը միջին բարդության հավելվածներում՝ վիճակի կառավարման համար, որտեղ կարևոր է տրամաբանությունն ու UI-ն հստակ բաժանել, ինչպես նաև բիզնես տրամաբանության թեստավորումը հեշտացնելու համար։