Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida Conceitual

Boa tarde,

Eu tenho uma dúvida neste projeto de gerenciamento de estado que envolve mais o contexto de arquitetura. Vimos neste projeto que as páginas de Clientes e Tipos de Clientes usam os objetos direto da memória, mas se no mundo real a nossa aplicação tivesse a necessidade de ou usar base de dados ou uma chamada REST para o backend, como estas duas páginas se comportariam tanto na leitura quanto na adição de clientes e tipos de clientes?

A ligação a base de dados/backend seria feito dentro dos próprios models (Clients e Types) que extends ChangeNotifier?

2 respostas
solução!

Oi, Diego. Tudo bem?

Num cenário real, onde você precisa buscar dados de uma base de dados ou de uma API REST, a abordagem pode variar, mas vou te dar uma sugestão.

Um dos cenários é utilizar o padrão de repositório pra separar a lógica de acesso a dados (seja de uma base de dados local ou de uma API) da lógica de apresentação e estado.

Vão ser criados uma classe repositório que será responsável por fazer as chamadas à base de dados ou API. Essa classe pode ter métodos como fetchClients, addClient, fetchClientTypes, etc.

O ChangeNotifier (ou outro tipo de provider) vai utilizar o repositório para obter e manipular os dados. Dessa forma, o provider se torna responsável por gerenciar o estado e notificar as páginas quando há mudanças. E as páginas vão escutar o provider pra obter os dados e reagir a mudanças no estado.

Então, pra resumir teremos:

  • Repositório: Que é responsável por acessar a base de dados ou API.
  • Provider: Que gerencia o estado e utiliza o repositório pra obter e manipular dados.
  • Páginas: Que escutam o provider pra obter dados e reagir a mudanças no estado.

Espero ter ajudado.

Um abraço e bons estudos.

Obrigado, Ajudou sim, Foi bem como eu pensei que seria em tese.