Sobes.tech
Back to questions
Junior — Middle
146

Можете объяснить, что означает паттерн BLoC в архитектуре приложения?

Companies where asked
Верме

Answer from AI

sobes.tech 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.