2017-10-19 6 views
0

Ich arbeite in einer Task-Management-Anwendung, wo Benutzer Tickets öffnen können. Jedes Ticket hat eine kurze Beschreibung Feld, das aus einer Liste ausgewählt werden kann. Backoffice-Team kann schließlich hinzufügen, entfernen oder aktualisieren kurze Beschreibung Liste. Änderungen in kurze Beschreibung Liste müssen NICHT beeinflussen bereits erstellte Tickets.DDD - Wertobjekt CRUD

Ich denke kurze Beschreibung ist eine VO aus der Ticket-Perspektive, sondern auch eine Einheit aus der CRUD-Perspektive.

Sollte ich zwei getrennte Objekte mit zwei separaten Repositories modellieren? Eine für die VO (schreibgeschützt) und andere für CRUD? Was ist mit Code-Replikation?

Antwort

2

Ich denke, kurze Beschreibung ist ein VO aus der Ticket-Perspektive, sondern auch eine Einheit aus der CRUD-Perspektive.

Das ist ein bisschen verdächtig; Ich würde vermuten, dass die short descriptions Wertobjekte sind, aber die current list of approved short descriptions ist eine Entität.

Das heißt, dass das Back-Office-Team ein Dokument ändert und das Ticket einen Wert enthält, der beim Erstellen des Tickets aus diesem Dokument kopiert wurde.

2

Ich denke, Sie haben es richtig gemacht, Sie haben zwei Modelle in zwei begrenzten Kontexten. Eine könnte eine CRUD-Einheit mit verschiedenen Eigenschaften wie lastEditDate, creatorId, textRepresentatuon usw. sein, aber in der task management bc könnte es eine einfache value object sein, die eine Zeichenfolge enthält. Das Kopieren der Daten könnte in einer Anti-Korruptionsschicht erfolgen.