Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gRoOvE

Persistencia de dados - MVC

Recommended Posts

Olá galera, estou estudando C# na faculdade, baseado em MVC, preciso persistir dados mas não faço idéia de como fazer..devo fazer no control ou model?

Gostaria de fazer algo na mão mesmo sem usar framework, pra aprender. Peço algumas dicas ai, qual caminho seguir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, independe da linguagem utilizada.

 

Acredito que o correto seja criar uma classe no modelo só para fazer a persistência e as outas classes do modelo que devem se comunicar com ela, sempre utilizando objetos. Por exemplo, você quer salvar um usuário no banco de dados, então instância um objeto do tipo usuário e passa ele pra classe responsável pela persistência. A mesma coisa se quiser pegar o usuário do banco, a classe de persistência deve retornar um objeto do tipo usuário para o modelo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok. Entendi, sempre devo encapsular a persistência em uma classe. Tem algum padrão pro nome dessa classe de persistência?

Outra dúvida, se eu desejar gravar um objeto "usuário", devo instância-lo dentro do control? Aí o control chama a classe de persistência pra gravar os dados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu desconheço se tem algum nome padrao, eu utilizo persistencia mesmo...

 

Acho que o objeto usuário não deve ser instanciado no controle. Mas sim em alguma classe do modelo, como a que faz o papel de fachada do domínio, bem como ela deve chamar a persistência.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia ser mais claro, não entendi. Qual classe do modelo deveria instaciar? Fachada de dominio?

Teria a interface q se comunica com controlador, controlador se comunica com o modelo Pessoa, devo então criar outra classe pra instanciar Pessoa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem o padrão de projeto Fachada, aonde tu cria um objeto pra ser uma "fachada" de um subsistema, como se essa fachada encapsulasse todos os objetos desse subsistema, que corresponde a mesma interface, sendo a fachada o ponto de acesso a esse subsistema.

 

Por exemplo, tens que modelar uma cidade. Então tu cria as classes, Prédio, Casa e Rua. Mas ao invés de o controle se conectar diretamente com essas classe (Prédio, Casa, Rua), tu cria uma fachada com o nome Cidade. Assim o controle se conecta com a Cidade, que por sua vez, se conecta com Prédio, Casa e Rua, ou seja, o Controle não tem ligação direta com Prédio, Casa e Rua.

Nesse exemplo, a classe Cidade, ficaria responsável por chamar a classe responsável pela persistência.

 

Bom, eu também to vendo isso agora na faculdade e estou fazendo os meus trabalhos desta forma. Qualquer coisa estamos aí.

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas nesse caso você vai ter mais objetos compondo um só objeto..se eu for fazer desta forma vou estar replicando a mesma coisa em duas classes..

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo, se eu tiver as classes: controlador, pessoa e persistencia e telaAddPessoa. Na interface, quando eu clicar em cadastrar, o controlador vai criar uma instancia de Pessoa e dai chamar Persistencia? Isso que nao entendi, qual a ordem das chamadas..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, tu tendo só essas classes, eu fico em dúvida, mas aí eu acho que o teu controle pode chamar a persistência direto.

 

interface -> controle (instancia a pessoa) -> persistencia

 

Mas se tu tiver mais classes no modelo pra represetar um subsistema, cria uma fachada.

interface -> controle -> fachada (instancia a pessoa) -> persistencia

 

Bom eu faria assim, é bom tu ver outras fontes também.

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.