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-ს მკაფიო განყოფილება, ასევე ბიზნეს ლოგიკის ტესტირების გამარტივებისთვის.