Junior — Middle
Uygulama mimarisinde BLoC desenlemesinin ne anlama geldiğini açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Flutter uygulamalarının mimarisinde BLoC (Business Logic Component) deseni, iş mantığını ve UI'yi ayırmak için tasarlanmıştır. Uygulamanın durumunu yönetmeye yardımcı olur, böylece kod daha modüler ve test edilebilir hale gelir.
BLoC'nin temel fikirleri:
- Veri akışları (Streams): BLoC, olayları UI'den iletmek ve durumları geri göndermek için akışlar (Streams) kullanır.
- Giriş olayları (Events): UI, örneğin bir düğmeye basma gibi olayları BLoC'ye gönderir.
- Çıkış durumları (States): BLoC, olayları işler ve UI'nin abone olduğu yeni durumları yayınlar.
Dart'ta basit bir BLoC örneği:
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();
}
}
Burada, UI incrementSink'e bir olay gönderir, BLoC sayacı artırır ve yeni değeri counterStream akışına gönderir, UI buna abone olur.