3 votes

Que signifie "client" dans le modèle de référentiel de DDD ?

J'ai lu un livre intitulé Domain-Driven Design Quickly.
J'en suis maintenant au modèle de référentiel.

Je ne sais pas exactement à quoi ils font référence en mentionnant le "client".
Que signifie ici le terme "client" ?

Les bases de données font partie de l'infrastructure. Une mauvaise solution le client connaître les détails nécessaires pour accéder à une base de données. Par exemple, le client doit créer une base de données SQL qu données souhaitées. La requête de la base de données peut renvoyer un ensemble d'enregistrements, exposant encore plus de détails internes. Lorsque de nombreux clients doivent créer des objets directement à partir de la base de données, il s'avère que ce code est disséminé dans l'ensemble du domaine.

4voto

DmitriBodiu Points 163

Le client d'un référentiel est un morceau de code (une autre classe), généralement la couche d'application dans le contexte de l'architecture DDD/Onion. La règle empirique est la suivante : 1 référentiel par racine d'agrégat. Si la racine de votre agrégat est Order, qui contient une collection de OrderItem, vous ne créez que OrderRepository et renvoyez l'ensemble de la commande avec tous les OrderItem, sans Lazy Loading. Maintenant, votre client (code de la couche application) ne devrait avoir aucune idée de ce que contient le référentiel, (est-il basé sur un fichier, basé sur sql, basé sur http) vous le traitez comme une collection en mémoire : repository.GetById(orderId) où repository est IOrderRepository. Cela signifie que vous pouvez facilement passer d'un référentiel en mémoire à un référentiel SQL et inversement, à tout moment, et que votre code client (couche application) ou toute autre classe qui utilise le référentiel ne sera pas affectée, ce qui préserve le principe de substitution de Liskov.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X