Sobes.tech
Junior — Middle

რა არის BLoC-ის ძირითადი როლი Flutter-ის აპლიკაციებში მდგომარეობის მართვაში?

sobes.tech AI

პასუხი AI-სგან

Flutter-ში მდგომარეობის მართვაში BLoC (Business Logic Component)-ის ძირითადი როლია ბიზნეს ლოგიკის გამოყოფა UI-დან, რათა უზრუნველყოს სუფთა არქიტექტურა და გაადვილოს ტესტირება.

BLoC იღებს UI-დან მოვლენებს (events), მათ processing, მდგომარეობის შეცვლა და ახალი მდგომარეობის დაბრუნება 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-ზე და ყოველ ცვლილებაზე განახლდება.