L'ignorance de la persistance est une application du principe de responsabilité unique, ce qui signifie en pratique que les objets de domaine ( DO ) ne doivent pas contenir de code lié à la persistance, ils doivent uniquement contenir une logique de domaine.
a) Je suppose que cela signifie que le code qui contacte les couches inférieures (c'est-à-dire les couches de persistance) vit en dehors du modèle de domaine dans d'autres classes ( OC ) d'une couche de logique métier?
b) Si mon hypothèse sous a) est correcte, alors DO , disons Customer, ne contient jamais de méthodes telles que GetCustomersou GetCustomerByID?
c) Si mes hypothèses sous a) et b) sont correctes, et en supposant que l' Customerobjet de domaine utilise le chargement paresseux pour certaines de ses propriétés, alors à un moment donné Customer, la logique interne doit contacter OC , qui à son tour récupère les données différées. Mais si vous devez Customercontacter OC pour recevoir des données différées, alors nous ne pouvons pas vraiment affirmer que les objets de domaine ne contiennent pas de logique liée à la persistance?!
Je vous remercie
RÉPONDRE À jkohlhepp
1) Je suppose OrderProviderque les CustomerProviderclasses sont contenues dans la couche logique métier?
2) Je comprends de votre réponse que mes hypothèses sous b) sont correctes?
3)
... Je vérifierais si un champ de commandes privées a été rempli ou s'il était nul. S'il est nul ...
Mais pour autant que je sache, dès que le code de domaine doit vérifier si le orderchamp privé a été rempli, et si ce n'est pas le cas, en contactant OrderProvider, nous violons déjà le principe PI ?!