Ich bin neu in DDD und muss ein paar Konzepte löschen, damit ich es auf meinem Projekt anwenden kann.Ein Domänenobjekt, das von mehreren Repositories 'gefüllt' wurde
Grundsätzlich habe ich ein Domain-Objekt "Kunde". CustomerRepository würde dieses Domänenobjekt durch Verweis auf die DAL zurückgeben.
Das Problem ist, dass die DAL nicht alle Informationen zur Verfügung stellen kann, die benötigt werden, um das Kundendomänenobjekt zu füllen. Einige Informationen bezüglich des Kunden werden von einer anderen externen Ressource, möglicherweise einem anderen Repository oder einem externen Web-Service, erworben.
Vielleicht sollte ich mein Domainobjekt "Kunde" teilen. Aber was ist, wenn meine Geschäftslogik es mir nicht erlaubt?
Ist es auch nur Repository-Verantwortung, Domain-Objekt zurückzugeben?
+1. Machen Sie keine Kompromisse bei Ihrer Domain Customer Entity, sonst verteilen Sie die Architekturverschmutzung im gesamten Domain-Modell. Die genaue Einhaltung des Modells ist ein zentraler Grundsatz von DDD. Das Repository ist das natürliche Zuhause für den Umgang mit dem Problem. Gibt es einen Grund, warum nicht auf beide Speicherorte zugegriffen werden kann (d. H. DAL + Web-Service/was auch immer)? – sfinnie
@sfinnie nur Grund gibt es - es könnte technisch schwer sein und könnte die Leistung stark beeinträchtigen. Ansonsten - nichts falsch. –
ok. Ich würde immer noch dafür stimmen, die Domain-Entität vom Standpunkt des Rests der Domain vollständig zu halten. Sie könnten möglicherweise eine Strategie des Typs "Lazy Load" für Repo betrachten. Allerdings würde ich zuerst einfach anfangen und nur dort hingehen, wenn Sie feststellen, dass Sie tatsächlich Leistungsprobleme bekommen. – sfinnie