Responsabilidade de Métodos

Seguinte. Tenho algumas dúvidas de quem fica com a responsabilidade do método. Um exemplo pra esclarecer.
Normalmente quando tenho um método:

List<Agencia> listarAgencias(){
//Implementação
}

Deixo ele na classe Banco, pois acho que banco é responsável por listar as agências. Porém, tenho outro método:

List<Banco> listarBancos(){
//Implementação
}

Que classe irá listar os bancos? Acho que Banco não é a classe ideal pra isto. Posso estar errado.

Vc pode criar a classe XPTO (onde XPTO é o nome do seu sistema) .
Contudo para resolver esse problema é usado o padrão Repository.
Ele representa o cojunto de todas as entidades de um certo tipo (banco, no caso)

O nome dele pode ser conforme o seu gosto. O natural seria Bancos.getBancos() - atenção ao plural - ou RepositorioBanco.getBancos()
(não são metodos estáticos)