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.