Frage

Wir haben ein einfaches Domain-Modell: Kontakt, und Telephone ContactRepository. Kontakt Einheit, es hat ein Identitätsfeld. Telephone ist typischer Wert Objekt:. Hat keine Identität und nicht getrennt von der Kontakt Instanz geladen werden

Von anderer Seite haben sie Web-Anwendung für die Kontakte zu manipulieren. 1. Seite ist „Contact“, nächste Seite ist „Kontakt / C0001“, die die Kontaktdaten und die Liste der Telefonnummern zeigt.

Wir müssen telepone Zahlen bearbeiten Form umzusetzen. Die erste Annäherung Gedanke ist eine Seite hinzuzufügen, die wie befahrbar sein wird ‚ThelephoneNumber / T0001‘.

Aber ThelephoneNumber ist Value Object-Klasse und ihre Instanz kann nicht auf diese Weise identifiziert werden.

Was ist die beste Praxis um dieses Problem zu lösen? Wie können wir erkennen nicht-identifieble Objekte in den staatenlos Anwendungen?

War es hilfreich?

Lösung

Haben erklären die Wertobjekte, dass bestimmte Instanz identifizieren? Wenn nicht könnte man einfach den alten Wert überschreitet zurück und den neuen Wert, wenn das Bearbeitungs Formular abgeschickt wird, aktualisieren Sie dann alle Objekte mit dem alten Zustand in den neuen Zustand.

Ich würde lieber eine Seite, wie Kontakt / C0001 / ThelephoneNumber, und verwenden Sie sowohl den Kontakt-ID und der Wert Objektklasse die Instanz, die Sie ändern möchten, zu identifizieren.

Es sei denn, ich habe völlig falsch verstanden, was Sie fragen.

Andere Tipps

Ich würde das machen Telephone nur ein paar Zahlen enthalten (vielleicht ist es Plural machen), und es auf diese Weise beziehen: Kontakt / C0001 / Telephone (n)

In der Praxis ich es immer einfacher, finden Sie die Telefonnummer, eine Identität zu geben, auch wenn es konstruktiv nicht unbedingt erforderlich ist.

Wenn es ein strenges Wertobjekt, das nicht außerhalb des Kontextes der Kontakt bestehen kann, das anzeigt, dass eine gute Benutzeroberfläche aufrufen kann für die Telefonnummer nicht innerhalb der Kontaktseite bearbeitet werden, als auf einer eigenen Seite.

Aber ich denke, Marc Gear Lösung gut ist, wenn Sie gegen eine dieser beiden Ansätze entscheiden.

Trotz allem, was viele Leute möchten glauben Sie, Sie nicht 100% rein sein kann.

Ihr Wert Objekte eine Art von Identitätsfeld. Manchmal wird es etwas Einmaliges für ein Objekt wie eine Telefonnummer, manchmal wird es etwas künstlich sein, wie TelephoneNumber.Id.

Je früher Sie akzeptieren, desto besser für Sie: -)

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