Junior — Middle
Pode explicar o que significa o padrão BLoC na arquitetura da aplicação?
sobes.tech IA
Resposta da IA
O padrão BLoC (Business Logic Component) na arquitetura de aplicações Flutter destina-se a separar a lógica de negócio da interface de utilizador. Ajuda a gerir o estado da aplicação, tornando o código mais modular e testável.
Ideias principais do BLoC:
- Fluxos de dados (Streams): O BLoC usa fluxos (Streams) para transmitir eventos da UI e emitir estados de volta.
- Eventos de entrada (Events): A UI envia eventos ao BLoC, por exemplo, um clique num botão.
- Estados de saída (States): O BLoC processa os eventos e emite novos estados, aos quais a UI está inscrita.
Exemplo de um BLoC simples em 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();
}
}
Aqui, a UI envia um evento para incrementSink, o BLoC incrementa o contador e envia o novo valor para o fluxo counterStream, ao qual a UI está inscrita.