Junior — Middle
Como avalia o seu nível de conhecimentos e experiência com o padrão de arquitetura BLoC?
sobes.tech IA
Resposta da IA
BLoC (Business Logic Component) — padrão arquitetónico amplamente utilizado no Flutter para separar a lógica de negócio da interface de utilizador. Baseia-se em fluxos de dados (Streams) e programação reativa.
O padrão permite:
- Separar a lógica dos widgets.
- Gerir o estado através de fluxos de eventos e estados.
- Garantir testabilidade e reutilização do código.
Num BLoC típico há:
- Eventos de entrada (Sink), que a UI envia para o BLoC.
- Um fluxo de estados (Stream), ao qual a UI se inscreve para atualizar a interface.
Exemplo de um BLoC simples:
class CounterBloc {
final _counterController = StreamController<int>();
int _counter = 0;
Stream<int> get counterStream => _counterController.stream;
void increment() {
_counter++;
_counterController.sink.add(_counter);
}
void dispose() {
_counterController.close();
}
}
Utilizo BLoC para gerir o estado em aplicações de dificuldade média, onde é importante separar claramente a lógica da UI, e também para facilitar os testes da lógica de negócio.