Um objeto deve retornar uma lista dele mesmo?

5 respostas
jotazer

Pessoal, estou com uma dúvida na seguinte questão:

Se em algum momento, eu precisar retornar todos os registros de uma tabela do banco (ex: cliente), o método resposnável por retornar essa lista deve ficar em que Classe? Se for na classe Cliente, não fica estranho eu pedir a um cliente que me retorne uma lista com todos os clientes?

Antes que sugiram uma classe superior que tenha uma lista de clientes como atributo (ex: loja), quero deixar claro que no sistema em questão, não existe uma classe superior para a qual eu pediria uma lista de clientes daquela loja. Eu quero mesmo a lista de todos os clientes do banco.

Obrigado a todos.

5 Respostas

ViniGodoy

Por que você acha estranho? Não soa como uma espécie de construtor?

List<Cliente> clientes = Cliente.carregarTodos();

Outra opção é criar uma classe Dao para esse fim:

List<Cliente> clientes = clienteDao.carregarTodos();
V

A principio, não seria responsabilidade do objeto cliente listar todos os outros objetos do tipo cliente.
Por isso que parace estranho.

Thiago_Luis

Fala cara, blza?

Como o ViniGodoy comentou, acho melhor criar uma classe DAO relacionada a classe Cliente.
Nessa classe DAO vc carregaria um List com todos os clientes que estão no banco.
Assim não parece tão estranho.

Abraço

jotazer

A classe DAO eu já tenho, a questão é quem do “negócio” vai utilizar ela. Afinal, a interface deveria passar pelas classes de negócio para utilizar um método da DAO… Ou não?

Thiago_Luis

Se vc já tem um DAO, vc já deve ter um ambiente MVC.
Quem vai utilizar o DAO vai ser o Controller (um Servlet, se vc está num ambiente Web ou uma classe separada que só fará a ponte entre os dados e a visualização, se vc estiver num ambiente desktop)
Dentro dessa outra classe separada é que vc criará o DAO, pedirá a ele (com as chamadas de método) os dados do banco e passará esses dados para a classe que se encarrega da visualização.

Criado 14 de agosto de 2009
Ultima resposta 17 de ago. de 2009
Respostas 5
Participantes 4