Junior — Middle
Μπορείτε να εξηγήσετε τι σημαίνει το μοτίβο BLoC στην αρχιτεκτονική της εφαρμογής;
sobes.tech AI
Απάντηση από AI
Το πρότυπο BLoC (Business Logic Component) στην αρχιτεκτονική των εφαρμογών Flutter έχει σχεδιαστεί για να διαχωρίζει τη λογική επιχειρήσεων από το UI. Βοηθά στη διαχείριση της κατάστασης της εφαρμογής, καθιστώντας τον κώδικα πιο αρθρωτό και δοκιμάσιμο.
Βασικές ιδέες του BLoC:
- Ροές δεδομένων (Streams): Το BLoC χρησιμοποιεί ροές (Streams) για τη μεταφορά γεγονότων από το UI και την επιστροφή καταστάσεων.
- Εισερχόμενα γεγονότα (Events): Το UI στέλνει γεγονότα στο BLoC, π.χ., ένα πάτημα κουμπιού.
- Εξερχόμενες καταστάσεις (States): Το BLoC επεξεργάζεται τα γεγονότα και εκπέμπει νέες καταστάσεις, στις οποίες είναι εγγεγραμμένο το UI.
Παράδειγμα ενός απλού BLoC σε Dart:
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();
}
}
Εδώ, το UI στέλνει ένα γεγονός στο incrementSink, το BLoC αυξάνει τον μετρητή και στέλνει την νέα τιμή στο ρεύμα counterStream, στο οποίο είναι εγγεγραμμένο το UI.