Usuário com melhor resposta
Retorno de vários itens no padrão MVC

Pergunta
-
Pessoal,
Estou iniciando a modelagem de um novo sistema, estou aplicando MVC, porém estou com dificuldade de entender como controlar/retornar vários objetos.
Por exemplo: Tendo as classes Model, Controller e View (que é um WinForm), como eu faria quando o usuário faz uma pesquisa que retorne vários Pedidos, por exemplo?
A classe Model faz o acesso ao banco de dados, se eu digito um código de pedido através do método getPedido(int numPedido) eu consigo preencher suas propriedades e tudo bem.
Mas e no caso de fazer uma pesquisa de todos os pedidos de determinado cliente em um período de tempo? Quem seria o responsável por fazer isso? No classe Controller não, pois senão daí eu iria espalhar o acesso ao banco de dados, a classe Model seria uma única instância de pedido...
Alguém pode dar alguma sugestão, link, literatura?
Respostas
-
É por aí,...
Um repositório é um objeto que participa da manutenção do ciclo de vida dos objetos de domínio. Sua principal característica é fornecer uma interface mais próxima ao de uma Collection usando termos significativos para o negócio. E respondendo sua pergunta... Sim, ele faz parte do M do MVC.
[]s
Todas as Respostas
-
opa,... Brandão,
Use o pattern: Repository. Este objeto, com uma interface de negócio, retornaria todos os objetos num: GetAll() da vida.
Entretanto, é bem comum também ter essa lógica implementada em "managers". Fachadas que expões métodos sobre uma determinada entidade - que ganham super poderes em arquiteturas DTO/BO.
[]s
-
Laércio,
Estou crú ainda em padrões e o meu entendimento de UML é básico o que prejudica a minha compreenção do link que você me enviou.
Mas se eu entendi, basicamente, o que eu vou implementar é uma Collection, e se baseando em uma arquitetura MVC, essa Collection seria um objeto Model, correto?
-
É por aí,...
Um repositório é um objeto que participa da manutenção do ciclo de vida dos objetos de domínio. Sua principal característica é fornecer uma interface mais próxima ao de uma Collection usando termos significativos para o negócio. E respondendo sua pergunta... Sim, ele faz parte do M do MVC.
[]s
-