Sobes.tech
Junior — Middle

Πώς αξιολογείτε το επίπεδο γνώσεων και εμπειρίας σας με το αρχιτεκτονικό μοτίβο BLoC;

sobes.tech AI

Απάντηση από AI

BLoC (Business Logic Component) — ένα αρχιτεκτονικό μοτίβο ευρέως χρησιμοποιούμενο στο Flutter για τον διαχωρισμό της επιχειρηματικής λογικής και του UI. Βασίζεται σε ροές δεδομένων (Streams) και προγραμματισμό αντιδραστικό.

Το μοτίβο επιτρέπει:

  • Τον διαχωρισμό της λογικής από τα widget.
  • Τη διαχείριση της κατάστασης μέσω ροών γεγονότων και καταστάσεων.
  • Την εξασφάλιση δοκιμαστικότητας και επαναχρησιμοποίησης κώδικα.

Σε ένα τυπικό BLoC υπάρχουν:

  • Εισερχόμενα γεγονότα (Sink), που αποστέλλονται από το UI στο BLoC.
  • Μια ροή καταστάσεων (Stream), στην οποία εγγράφεται το UI για ενημέρωση της διεπαφής.

Παράδειγμα απλού 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();
  }
}

Χρησιμοποιώ BLoC για διαχείριση κατάστασης σε εφαρμογές μέτριας πολυπλοκότητας, όπου είναι σημαντικό να διαχωρίζεται σαφώς η λογική από το UI, και επίσης για να διευκολύνω τον έλεγχο της επιχειρηματικής λογικής.