Ich fange jetzt erhältlich auf DDD, habe ich festgestellt bereits eine schöne Implementierung für ValueObject aber ich kann nicht jede gute Umsetzung für die Wesen zu finden scheinen, möchte ich eine generische Einheit Typ-Basis, die eine ID haben wird (benötigt durch die Spezifikation) und implementieren Sie korrekte Gleichheitsoperationen.
Was ist die eleganteste Lösung?
Das einzige Merkmal einer Entität ist, dass sie eine langlebige und (halb-) dauerhafte Identität hat. Sie können dies einkapseln und ausdrücken, indem Sie IEquatable<T>
implementieren. Hier ist ein Weg, es zu tun:
Für die Implementierung von korrekten Gleichheitsoperationen empfehle ich, in Sharparchitecture - Ссылка . Es hat die Implementierung aller erforderlichen Funktionen. Und schauen Sie sich dort einen anderen Code an, IMO, der für Sie und Ihren Fall sehr nützlich sein wird.
Ich bin mir nicht sicher, ob Sie nach einer bestimmten Bibliothek / Beispielcode oder Richtlinien suchen. Eine gute DDD-Lösung verwendet Factory für Instanziierung, Persistenz getrennt vom Domänenmodell (die meisten ORM tendieren dazu, die beiden zusammen zu bündeln), definieren klar Domänengrenzen, erzwingen Felder und Operationen über die Schnittstelle.
Ich würde das Buch Anwenden von DDD und Patterns von Jimmy Nilson wärmstens empfehlen. Es wird ausführlich über DDD und Best Practices diskutiert. Die Beispiele sind auch in C #, was zu Ihrem Projekt passt.
Tags und Links c# oop domain-driven-design