Was ist der Unterschied zwischen einem MVC-Modellobjekt, einem Domänenobjekt und einem DTO?
Mein Verständnis ist:
MVC-Modellobjekt:
Modelliert die anzuzeigenden Daten durch eine entsprechende Ansicht. Es wird möglicherweise nicht direkt einem Domänenobjekt zugeordnet, dh es kann Daten von einem oder mehreren Domänenobjekten enthalten.
- Client-Seite
- Kann Geschäftslogik enthalten. Z.B. Validierungen, berechnete Eigenschaften usw.
- Keine persistenzbezogenen Methoden
Domänenobjekt:
Ein Objekt, das reale Objekte in der Problemdomäne wie Reservierung, Kunde, Bestellung usw. modelliert. Wird zum Speichern von Daten verwendet.
- Serverseite
- Keine Geschäftslogik
DTO (Datenübertragungsobjekt):
Ein Objekt, das zum Übertragen von Daten zwischen Ebenen verwendet wird, wenn sich die Ebenen in separaten Prozessen befinden, z. B. von einer Datenbank zu einer Client-App. Ermöglicht eine einzelne Transaktion über die Leitung anstatt mehrerer Aufrufe beim Abrufen von Daten, die mehreren Domänenobjekten entsprechen. Ein DTO enthält nur Daten- und Zugriffsmethoden, und es ist keine Logik vorhanden. Die Daten beziehen sich auf eine bestimmte DB-Transaktion, sodass sie möglicherweise direkt einem Domänenobjekt zugeordnet werden oder nicht, da sie Daten von einem oder mehreren Domänenobjekten enthalten können.
- Wird sowohl auf Server- als auch auf Clientseite verwendet, wenn es zwischen Ebenen übertragen wird
- Keine Geschäftslogik
- Keine persistenzbezogenen Methoden
Also die Fragen:
Ist das obige Verständnis richtig? Vermisse ich einige wichtige Punkte?
Gibt es Gründe, Domänenobjekte nicht als MVC-Modell zu verwenden, vorausgesetzt, die Modellobjekte erfordern keine zusätzliche Geschäftslogik?
Gibt es Gründe, DTOs nicht als MVC-Modell zu verwenden, vorausgesetzt, die Modellobjekte erfordern keine zusätzliche Geschäftslogik?