O repositório administra o ciclo de vida de Entidades, Objetos de Valor e
Agregados, fornece operações de criação, alteração e exclusão de objetos.
Repositório deve existir apenas para a raiz do agregado e apenas para os
objetos que precisem de acesso direto. O repositório fornece ao cliente uma maneira
simples de obter objetos persistentes, além de tornar o design do aplicativo e do
domínio desacoplados da tecnologia de persistência.
Esse é uma padrão que causa muita dúvida, já que comumente utilizamos mais o padrão DAO para fazer acesso a dados. Alguns desenvolvedores acreditam que basta alterar o nome do DAO para repositório que esta fazendo uso deste padrão, ou que ele é apenas uma interface na qual o DAO implementa. Porém, esses pensamentos são errados.