Um objeto deve retornar uma lista dele mesmo?

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.

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();

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

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

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?

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.