Sobes.tech
Junior — Middle

Ilova holatini boshqarishda BLoC naqshining ishlash mexanizmini tushuntirib berolasizmi?

sobes.tech AI

AIdan javob

Flutter'da dastur holatini boshqarish uchun BLoC (Business Logic Component) modeli ishlatiladi va bu, biznes mantiqini UI dan ajratadi.

Asosiy g'oya, voqealar va holatlar (States) uchun oqimlar (Streams) dan foydalanish:

  • Vaqealar (Events): foydalanuvchi harakatlari yoki tashqi voqealar BLoC ga yuboriladi.
  • Qayta ishlash: BLoC voqealarni oladi, biznes mantiqini bajaradi va yangi holatni shakllantiradi.
  • Holatlar (States): yangilangan ma'lumotlar oqim orqali qaytariladi, UI unga obuna bo'ladi.

Bu kodni modulyatsiya qilish, test qilish va qo'llab-quvvatlashni osonlashtiradi.

Soddalashtirilgan BLoC misoli:

class CounterBloc {
  final _eventController = StreamController<void>();
  final _stateController = StreamController<int>();

  int _count = 0;

  StreamSink<void> get eventSink => _eventController.sink;
  Stream<int> get stateStream => _stateController.stream;

  CounterBloc() {
    _eventController.stream.listen((_) {
      _count++;
      _stateController.sink.add(_count);
    });
  }

  void dispose() {
    _eventController.close();
    _stateController.close();
  }
}

UI stateStream ga obuna bo'ladi va voqealarni eventSink ga yuboradi, BLoC holatni yangilaydi va UI ni xabar qiladi.