A ignorância de persistência é uma aplicação do princípio de responsabilidade única, que na prática significa que os Objetos de Domínio ( DO ) não devem conter código relacionado à persistência; em vez disso, devem conter apenas lógica de domínio.
a) Suponho que isso significa que o código que contata as camadas inferiores (isto é, as camadas de persistência) vive fora do modelo de domínio em outras classes ( OC ) de uma camada de lógica de negócios?
b) Se minha suposição em a) estiver correta, DO , digamos Customer
, nunca contém métodos como GetCustomers
ou GetCustomerByID
?
c) Se os pressupostos sob a) e b) estão correctos, e assumindo Customer
objecto de domínio utiliza o carregamento lento para algumas das suas propriedades, em seguida, em algum momento Customer
da lógica interna deve contactar OC , o que por sua vez recupera dados diferida. Mas se Customer
precisar entrar em contato com a OC para receber dados adiados, não podemos realmente afirmar que os Objetos de Domínio não contêm lógica relacionada à persistência ?!
Obrigado
RESPONDENDO A jkohlhepp
1) Eu assumo OrderProvider
e CustomerProvider
aulas estão contidos dentro de camada de lógica de negócios?
2) Pela sua resposta, deduzo que minhas suposições em b) estão corretas?
3)
... Verificaria se algum campo de pedidos particulares foi preenchido ou se era nulo. Se for nulo ...
Mas até onde eu sei, assim que o código de domínio precisar verificar se o order
campo privado foi preenchido e, se não estiver, entrando em contato com o OrderProvider, já estamos violando o princípio do PI ?!