Junior — Middle
Pode explicar o mecanismo de funcionamento do padrão BLoC na gestão do estado da aplicação?
sobes.tech IA
Resposta da IA
O padrão BLoC (Business Logic Component) é utilizado no Flutter para gerir o estado da aplicação, separando a lógica de negócio da interface de utilizador.
A ideia principal é usar fluxos (Streams) para transmitir eventos e estados:
- Eventos (Events): ações do utilizador ou eventos externos são enviados ao BLoC.
- Processamento: o BLoC recebe os eventos, executa a lógica de negócio e forma um novo estado.
- Estados (States): os dados atualizados são enviados de volta através do fluxo, ao qual a UI está inscrita.
Isto permite que o código seja mais modular, testável e fácil de manter.
Exemplo de um BLoC simplificado:
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();
}
}
A interface de utilizador subscreve-se ao stateStream e envia eventos para o eventSink, o BLoC atualiza o estado e notifica a UI.