Repositórios não devem ser disponibilizado para os clientes
Supondo que você trabalha em um sistema de uma pizzaria e há uma funcionalidade para preparar uma Pizza de Calabresa. Para essa funcionalidade você irá utilizar 3 repositórios, um para pegar uma Massa de pizza, outro para pegar as Calabresas e mais um para pegar o Queijo. Solução Ter uma camada de Domínio onde vamos ter a implementação das Entidades, Casos de Uso e etc. Tudo relacionado às regras de negócio da aplicação. Ter uma camada que podemos chamar de Componente. Que irá utilizar os Casos de Uso e adaptadores (Repositórios, etc) disponibilizados pela camada de Domínio, então esse Componente proverá uma API pública para o Cliente, que vai conter os Casos de Uso necessários que serão executados na camada da aplicação.