2017-01-10 2 views
1

Ich bin ein Projekt Anwendung der DDD Prinzipien zu entwickeln, habe ich eine Klasse-Aggregation (Account) wird es die Klassen enthalten (Agentur) und (Agent), die als (Account) Tabellen in der Datenbank hat. Meine Frage ist dies:Aggregationen und die DDD

Ich muss eine Repository-Klasse und eine Service-Klasse für jede meiner Entitäten (Account, Agent und Agentur) erstellen oder ich sollte das AccountRepository erstellen und darin die Einfügungen und Durchsuchungen der 3 Klassen ?

Antwort

5

Nur Aggregat Wurzeln sind Repositories, aber Sie müssen mit den richtigen Aggregate kommen.

Ohne etwas über Ihre Domain zu wissen, ich fühle, dass Agency und Agent Aggregat Wurzeln ihrer eigenen sind, so würden sie haben jeweils ihre Repository und Account würden sie von Identität verweisen.

Designing Aggregate ist die komplexeste Modellierungsaufgabe und ganze Bücher könnten über das Thema geschrieben werden. Ich empfehle Ihnen dringend, Effective Aggregate Design von Vaughn Vernon zu lesen.

+0

Große Antwort und tolles Buch. Immer wenn ich mit jemandem über DDD rede, kann ich nie genug auf dasselbe Gefühl hinweisen. Viele Leute haben versagt, indem sie aggregiertes Design wie Datenmodellierung behandelt haben, d. H. Eine einzige Vorab-Anstrengung, die ein starres Domänenmodell erzeugt, das die Leute nicht ändern wollen. Die gesamte Domäne sollte organisch außerhalb von Anwendungsfällen wachsen, und die Menschen müssen mit dem Verständnis beginnen, dass sie als Teil des fortlaufenden Entdeckungsprozesses sich ändern werden. –

+0

Danke für die Antwort. Ich werde dieses Buch lesen. Ich denke, es ist sehr wichtig, sich über diese Konzepte klar zu sein – Dariel