Domanda

Sono appena agli inizi a DDD, e sto avendo qualche difficoltà a capire come per accogliere la natura relazionale dei dati. Ho quello che credo potrebbe essere considerato la mia radice di aggregazione, ma l'aggregato ha anche un aggregato a sé stante. Non volendo violare la Legge di Demetra, mi chiedo se sto pensando a questo sbagliato e sto sperando che qualche esperto DDD in grado di offrire una certa comprensione.

La mia radice di aggregazione è il mio oggetto Account, che ha un aggregato di numerose entità AccountElement, che sono essi stessi raggruppamenti logici di singole entità ProductComponent.

Un AccountElement al di fuori del contesto di un Account non ha alcun significato, quindi sono bene con la mia conclusione che l'oggetto Account è la mia radice di aggregazione, e vi anticipo che entità avente una proprietà Elements aggregato. E 'la collezione ProductComponent che mi ha confuso. Tale aggregato ha alcun significato al di fuori di un AccountElement, e davvero non ha senso al di fuori di un Account.

Non credo che dovrei accederanno i singoli oggetti ProductComponent da punteggiano il mio modo di esso, come:

var reference = account.Elements(0).ProductComponents(0).ReferenceCode;

Ma allo stesso tempo non ha senso (dal punto di vista di dominio) per accedere a un ProductComponent direttamente da un'entità Account.

Sono sicuro che tutto questo è un po 'difficile da comprendere senza la conoscenza del mio dominio, ma spero che sia sufficiente per ottenere qualche buon feedback.

È stato utile?

Soluzione

L'articolo Robert legato a è un buon compromesso. Vorrei aggiungere che se ProductComponent esiste solo nel contesto di AccountElement e AccountElement esiste solo nel contesto di account, quindi per estensione ProductComponent è nel contesto di account.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top