Im Pluralsight-Kurs Domain-Driven Design Fundamentals gibt es ein Beispiel, wie der Entwurf eines Aggregates Gestalt annimmt. Das Beispiel beinhaltet Patienten Termine in einer Klinik. Der Termin hat Beziehungen z.B. zu einem Arzt oder einem Prüfungsraum. Und dem Beispiel geht eine Analyse voraus, die zu dem Schluss kommt, dass Appointment nicht eine aggregierte Wurzel für Doctor and ExamRoom sein sollte. Und ein Schritt in der Designentwicklung geht von dem Termin, der Objektreferenzen auf Doctor- und ExamRoom-Objekte hat, hin zu primitiven IDs dieser anderen Entitäten, DoctorId und ExamRoomId. Sie motivieren, diese Änderung mit den Worten: „Durch einfache die IDs der Konzepte im Zusammenhang mit eher als Objektreferenzen wir, um sicherzustellen, sind in der Lage, dass das Erstellen und Ändern Termin einen minimalen Einfluss auf unserem System hat, wenn wir unseren Termin bestehen bleiben“Objektreferenz vs Referenz durch Id in DDD Aggregate
Meine erste Frage: Ist das ein allgemeines Entwurfsmuster? Wenn ich es richtig verstehe, würde es zu etwas verallgemeinern: Wenn Objekt A sich auf Objekt B bezieht, aber das Arbeiten mit A niemals Änderungen an B nach sich ziehen sollte, dann referenziere es mit seiner ID, nicht mit B selbst. Ist das etwas, was du empfehlen würdest?
Meine zweite Frage: Hat das etwas mit DDD zu tun? Ich meine die Tatsache, dass Termin nicht eine Gesamtwurzel des Arztes sein sollte, bedeutet nicht, dass es Objektreferenzen nicht halten kann, oder fehle ich etwas?
hatte diese gleiche Frage zuvor und die drei Serien Aggregat Design von Vaughn vergossen etwas Licht. Aber ich bin wieder auf dem Thema, um Alternativen zu wissen, und wann ist es in Ordnung, die Regel zu brechen :) –