Frage

Verwirrt nach dem Lesen wieder über dieses anti-pattern und die vielen Bedenken, die hier auf SO.

Wenn ich ein domain-Modell und erfassen die Daten müssen gespeichert werden in ein data transfer object, macht mein domain-Modell ein wrapper um die Daten?In diesem Fall wäre ich mit einer anemic domain model.Aber wenn ich genug domain-Logik auf, die wrapper, ab Wann wird es zu einer echten domain-Modell?

Ich habe den Eindruck, dass das festhalten, was muss gespeichert werden in einem domain-Modell verstößt gegen die gute Praxis und schafft die anämische domänenmodell anti-pattern.Wenn Sie jedoch die Verwendung einer relationalen DB-es gibt keine Möglichkeit zu vermeiden, um den Teil, der lässt den Status des Objekts und speichern Sie es.

Da bin ich ziemlich verwirrt über die Konzepte ich bin mir nicht sicher, was ich schreiben macht Sinn.Fühlen Sie sich frei zu Fragen der Klärung.

War es hilfreich?

Lösung

Es wird eine "echte" domain-Modell, wenn es enthält alle (oder die meisten) der Verhalten das macht die business domain (Hinweis: ich bin betonen business-Logik, nicht-UI oder andere orthogonale betrifft).

Wenn Sie mit der Ubiquitous Language, und immer Konstante feedback von Ihrem domain-Experten, Sie werden wissen, dass Sie auf der richtigen Spur sind (Experten sollten kräftig, wenn Sie sehen, Ihr domain-Modell).Wenn Sie nicht tun, diese Dinge, die man nicht tut DDD (Eric Evans sprechen über es).

Auf den Punkt von DTOs:Nicht ignorieren.Von einer Umsetzung zu, du brauchst Sie, um die Fähre von Daten zwischen Ebenen/Etagen.Wie kombinieren Sie DTOs und wahre Domäne Objekte hängt wirklich davon ab, die Technologie, die Sie verwenden.

Wie bereits angedeutet, die in einer früheren Antwort, vielleicht ist Ihr Fokus auf Daten und Persistenz lenkt Sie von true domain modelling...

Andere Tipps

Zwei Elemente von Interesse kommen mir in den Sinn:

  • Data Transfer Objects (DTOs) sind verschiedene von der Domain Objekte.Sie dienen unterschiedlichen Zwecken in verschiedene Orte in einer Architektur - nicht zu verwechseln Sie.Domain-Objekte bieten eine rich API mit hohe Kohäsion.DTOs sind passive Daten-Strukturen in einer Anwendung verwendet die externe Schnittstelle - ganz wie UI ViewModels, sondern richtet sich an automatisierte Systeme anstelle von Benutzern.
  • Streben Sie nach der Auswahl eines ORM-das können Sie tun, beschäftigen Persistenz-Ignoranz.Dies bedeutet, dass Sie definieren können, Ihr Domain-Modell in einen grenzenlosen Weg, und haben Sie einfach das ORM-ordnen Sie die Objekte in einer relationalen Datenbank.

Aber wenn ich genug domain-Logik auf, die wrapper, ab Wann wird es zu einer echten domain-Modell?

Bei der Ankunft im domain-Modell durch hinzufügen von Zeug in einer willkürlichen Art und Weise möglich ist, aber sicherlich nicht in domain-driven design.(Ich weiß, das ist nicht wirklich hilfreich.Ich Neige dazu zu denken, sehr Daten-zentrierte mich, und in einigen Fällen dauert es eine echte Anstrengung zu ziehen sich selbst aus dieser Sicht.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top