Ich bin neu in Konzepten wie DAO, DAL und Domain Driven Design. Am Ende möchte ich die Persistenzschicht (MySQL-Datenbank) von meinen Geschäftsobjekten und meiner Logik in einer Webanwendung entkoppeln. Das DAO-Konzept hat mir gefallen, aber ich konnte es nicht implementieren, wenn ich ein Geschäftsobjekt aus einer Datenbank erstellen möchte, der andere Entitäten zugeordnet sind (dargestellt durch einen Fremdschlüssel in der DB-Tabelle).
- Wie werden diese Referenzen (Aggregationen) mit DAO-Mustern behandelt? Jedes Online-DAO-Beispiel ist einfach und zeigt nur die Erstellung von wertobjektähnlichen Geschäftsobjekten (ohne auf andere Entitäten oder Wertobjekte zu verweisen). Wird es mit Dependency Injection durchgeführt und wenn ja, wo wird die Abhängigkeit erstellt?
- Wenn ich weiter lese, denke ich, dass das Repository-Muster von DDD die Möglichkeit bietet, DAOs hinter den Kulissen zu verwenden und Objektaggregationen zu handhaben. So wie ich es verstehe, liefert es nur die sogenannte Wurzel (Entität mit allen geladenen oder faul geladenen Referenzen) für die Außenwelt, was für mich ein guter Ansatz zu sein scheint. Wird das Repository bei Verwendung von DAO empfohlen oder können DAOs diese Funktionalität selbst bereitstellen, indem sie die Persistenz-Ignoranz für die Geschäftsobjekte beibehalten.
Ich verwende kein ORM-Tool und möchte dies nicht, da ich diese grundlegenden Muster direkt untersuchen möchte