Back to questions
Junior — Middle
124
Можете объяснить механизм функционирования паттерна BLoC в управлении состоянием приложения?
Answer from AI
sobes.tech AI
Паттерн BLoC (Business Logic Component) используется во Flutter для управления состоянием приложения, отделяя бизнес-логику от UI.
Основная идея — использовать потоки (Streams) для передачи событий и состояний:
- События (Events): пользовательские действия или внешние события отправляются в BLoC.
- Обработка: BLoC принимает события, выполняет бизнес-логику и формирует новое состояние.
- Состояния (States): обновлённые данные передаются обратно через поток, на которые подписан UI.
Это позволяет сделать код более модульным, тестируемым и поддерживаемым.
Пример упрощённого BLoC:
class CounterBloc {
final _eventController = StreamController<void>();
final _stateController = StreamController<int>();
int _count = 0;
StreamSink<void> get eventSink => _eventController.sink;
Stream<int> get stateStream => _stateController.stream;
CounterBloc() {
_eventController.stream.listen((_) {
_count++;
_stateController.sink.add(_count);
});
}
void dispose() {
_eventController.close();
_stateController.close();
}
}
UI подписывается на stateStream и отправляет события в eventSink, BLoC обновляет состояние и уведомляет UI.