Das Aggregat Root ist ein komplexer Name für eine einfache Idee.
Allgemeine Idee
Ein gut gestaltetes Klassendiagramm kapselt seine Interna ein. Der Punkt, über den Sie auf diese Struktur zugreifen, heißt aggregate root
.
![enter image description here]()
Die Interna Ihrer Lösung können sehr kompliziert sein, aber die Benutzer dieser Hierarchie werden einfach die root.doSomethingWhichHasBusinessMeaning()
.
例
Prüfen Sie diese einfache Klassenhierarchie ![enter image description here]()
Wie wollen Sie Ihr Auto fahren? Wählen Sie eine bessere API
Option A (es funktioniert einfach irgendwie):
car.ride();
Option B (Benutzer hat Zugang zu den inneren Werten der Klasse):
if(car.getTires().getUsageLevel()< Car.ACCEPTABLE_TIRE_USAGE)
for (Wheel w: car:getWheels()){
w.spin();
}
}
Wenn Sie denken, dass Option A besser ist, dann herzlichen Glückwunsch. Sie haben den Hauptgrund für aggregate root
.
Aggregate Root kapselt mehrere Klassen. Sie können die gesamte Hierarchie nur über das Hauptobjekt manipulieren.