Junior — Middle
Ilova arxitekturasida BLoC naqshoni nima anglatishini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
Flutter ilovalarining arxitekturasida BLoC (Business Logic Component) modeli biznes mantiqini va UI ni ajratish uchun mo'ljallangan. U ilovaning holatini boshqarishga yordam beradi, kodni yanada modulli va test qilish osonroq qiladi.
BLoC ning asosiy g'oyalari:
- Ma'lumot oqimlari (Streams): BLoC UI dan voqealarni uzatish va holatlarni qaytarish uchun oqimlardan foydalanadi.
- Kirish voqealari (Events): UI BLoC ga voqealarni yuboradi, masalan, tugmani bosish.
- Chiqish holatlari (States): BLoC voqealarni qayta ishlaydi va yangi holatlarni chiqaradi, ular UI tomonidan kuzatiladi.
Dart tilida oddiy BLoC misoli:
import 'dart:async';
class CounterBloc {
int _counter = 0;
final _stateController = StreamController<int>();
Stream<int> get counterStream => _stateController.stream;
final _eventController = StreamController<void>();
Sink<void> get incrementSink => _eventController.sink;
CounterBloc() {
_eventController.stream.listen((_) {
_counter++;
_stateController.sink.add(_counter);
});
}
void dispose() {
_stateController.close();
_eventController.close();
}
}
Bu yerda UI incrementSink ga voqea yuboradi, BLoC hisoblagichni oshiradi va yangi qiymatni counterStream oqimiga yuboradi, UI esa unga ulanishi mumkin.