Wenn Sie dem domänengesteuerten Entwurf (Domain-driven Design, DDD) folgen, ist es richtig, wenn ein Stammaggregat einen Verweis auf eine interne Entität enthält, die zufällig die Stammentität in einem separaten Aggregat ist?
Ich glaube, das ist nicht richtig, hauptsächlich wegen dieser Regel im Blue Book :
Nichts außerhalb der AGGREGATE-Grenze kann einen Verweis auf irgendetwas innerhalb enthalten, außer auf die Root-ENTITY. Die Stamm-ENTITÄT kann Verweise auf die internen ENTITÄTEN an andere Objekte übergeben, diese Objekte können sie jedoch nur vorübergehend verwenden, und sie können die Referenz möglicherweise nicht festhalten. Der Root kann eine Kopie eines VALUE OBJECT an ein anderes Objekt übergeben, und es spielt keine Rolle, was damit passiert, da es sich nur um einen VALUE handelt und keine Verbindung mehr zum AGGREGATE besteht.
Wenn ein Root-Aggregat einen Verweis auf ein anderes Root-Aggregat enthält, wird die Grenze des ersteren verletzt und das gesamte Konzept eines Aggregats wird beschädigt. Ich glaube also, dass ein Root-Aggregat einen Verweis auf ein anderes Root-Aggregat enthalten muss um eine andere Entität zu erstellen , die wahrscheinlich dieselben Mitglieder wie die andere Stammentität hat, aber keine globale Identität besitzt, wie diese andere Regel im Buch besagt:
Root ENTITIES haben eine globale Identität. ENTITÄTEN innerhalb der Grenze haben eine lokale Identität, die nur innerhalb des AGGREGATES eindeutig ist.
Ich glaube, dies wäre der richtige Weg, aber da er sich wiederholt und überflüssig anfühlt (aus dem DDD-Kontext herausgenommen, mit reinem OOP), bitte ich um Feedback.