Ich bin zu 80% sicher, dass ich diese Frage nicht stellen sollte, weil sie als negativ empfunden werden könnte und ich respektlos gegenüber niemandem, besonders dem Autor dieses Buches, bin. Ich habe mehrere Beiträge gesehen, die dieses book und seinen Begleiter project empfehlen. Ich habe das Buch nicht gelesen, aber ich habe heute ein paar Stunden damit verbracht, das Projekt zu studieren. Und obwohl es sehr vollständig aussieht, habe ich eine sehr harte Zeit damit, wie viel Details verstreut sind. Ich kämpfe in meinen eigenen Entwürfen mit dem, wie viel ich ändern muss, wenn sich ein Wesen ändert, und dieses Projekt macht mich als Lösung nicht sehr bequem.Ist das wirklich DDD?
Zum Beispiel gibt es ein Employee-Objekt, das von einer Person erbt. Die Person hat einen Konstruktor mit Vorname, Nachname usw. und damit auch Employee. Privat für Mitarbeiter sind Mitglieder für den Vornamen, den Nachnamen sowie öffentliche Eigenschaften für denselben Benutzer.
Es gibt eine EmployeeFactory, die sowohl die Employee und Personal-Eigenschaften als auch die SQL-Spaltennamen kennt (um Werte von einem Lesegerät zu ziehen).
Es gibt ein EmployeeRepository mit nicht implementiertem PersistNewItem und PersistUpdatedItem-Methoden, von denen ich vermute, dass, falls implementiert, SQL für INSERT- und UPDATE-Anweisungen erstellen würde, wie ich es in CompanyRepository sehe. Diese schreiben die Eigenschaften in Strings, um das SQL zu erstellen.
Es gibt einen 'Datenvertrag' PersonContract mit denselben privaten Mitgliedern und öffentlichen Eigenschaften wie Person und einem EmployeeContract, der von PersonContract wie Employee does Person erbt, wobei öffentliche Eigenschaften die Entitäten spiegeln.
Es ist eine statische ‚Converter‘ Klasse mit statischen Methoden, die Entitäten Verträge abzubilden, einschließlich
EmployeeContract ToEmployeeContract(Employee employee)
die kopiert die Felder von einem zum anderen, einschließlich der Person Felder aus. Es kann eine Begleitmethode geben, die in die andere Richtung geht - nicht sicher.
Ich denke, es gibt auch Komponententests.
Insgesamt zähle ich 5-10 Klassen, Methoden und Konstruktoren mit detaillierten Kenntnissen über Entitätseigenschaften. Vielleicht sind sie automatisch generiert - nicht sicher. Wenn ich der Person eine "Anrede" oder eine andere Eigenschaft hinzufügen müsste, müsste ich alle diese Klassen/Methoden anpassen? Ich bin sicher, ich würde etwas vergessen.
Nochmals, ich meine keine Respektlosigkeit und dies scheint ein sehr gründliches, detailliertes Beispiel für das Buch zu sein. Ist das DDD getan?
Übrigens, ich habe Sie updated, weil ich denke, dass es eine * ausgezeichnete * Frage ist. –