Eu sou novo no DDD, pois trabalhei apenas em aplicativos de Transaction-Script com um modelo anêmico ou apenas Big Balls of Mud, então, perdoe qualquer terminologia que eu abuse.
Estou tentando entender a separação adequada entre o modelo de domínio e o repositório. Qual é a maneira correta de construir um objeto de domínio proveniente de um banco de dados, assumindo a necessidade (incrivelmente simplificada) de procurar objetos por status (retornos enumerable
) ou por ID.
- Uma fábrica deve estar construindo os objetos, expondo métodos para
GetByStatus()
eGetByID()
, usando um repositório DIed? - Um repositório deve ser chamado diretamente, sabendo como criar um modelo de domínio a partir do DTO?
- O modelo de domínio deve ter um construtor para obter o ID, usando um repositório DIed para carregar o estado inicial, usando algum outro método (?) Para a lista?
Não tenho muita certeza de qual seria o melhor caminho, e essa pergunta tem uma resposta defendendo cada uma delas (essas certamente são exclusivas da mutuallu).