2009-03-10 15 views
1

J'ai donc un dépôt pour chaque entité essentiellement, mais mon modèle a une division relationnelle où les entités ne sont pas liés directement dans le modèle. Donc, ce que je dois faire, c'est interroger cette relation indirecte et retourner une collection d'entités. Est-il approprié d'initialiser et invoquer des requêtes sur un référentiel différent de celui que vous interrogez réellement contre? Si non, quelle est la meilleure solution à cela - une classe d'aide?question Pattern Repository - est-il acceptable d'utiliser une prise en pension à l'intérieur d'un autre référentiel?

Merci

Répondre

6

Je suis d'accord - essayer d'identifier les racines en agrégats. Si vous n'êtes pas familier avec les racines aggreagate: read here

Votre question initiale est toujours valide à mon avis cependant, vous pouvez toujours avoir des dépendances avec d'autres dépôts. Cela pourrait être correct d'avoir ces dépendances, selon votre modèle de domaine. Si vous avez des dépendances comme ça, c'est un bon design pour les coupler avec des interfaces. Vous pouvez ensuite utiliser une sorte d'injection de dépendance pour permettre des tests plus faciles, etc. Une autre option consiste à demander à une usine de vous fournir le bon référentiel.

2

Un référentiel pour chaque entité est probablement pas une bonne idée. Les référentiels devraient exister pour les objets racines agrégés. Définissez vos objets racines agrégés et les référentiels fournisseurs pour ceux-ci. Cela peut éclaircir une partie du désordre quand il s'agit de dépôts prenant des dépendances sur d'autres dépôts.