Was ist ein Aggregate

Generic1

Top Contributor
Hallo,

kann jemand mit dem Befriff Aggregate was anfangen. Wann setzt man solche Aggregate ein?
In dem Buch das ich lese steht, ein Aggregate ist ein Cluster von zusammengehörigen Objekten, die man als Einheit betrachten kann und jedes Aggregate hat ein root und ein boundary.

Ein externes Objekt darf nur auf das root zugreifen aber vom Aggregate aus darf aus soviele andere Objekte wie gewünscht zugegriffen werden.
Ich frag mich jetzt da, wie man das realisiert und was das bringen soll.
Besten Dank für Erklärungen.

lg
 
Zuletzt bearbeitet:

ThreadPool

Bekanntes Mitglied
Naja, ein Aggregat ist das was du beschrieben hast. Eine Zusammensetzung aus anderen Objekten.
Im Prinzip verwendest du also die Implementation der anderen Objekte um ein größeres Objekt mit
bestimmten Verhalten zu erzeugen. Diese Zusammensetzung hat verschiedene Ausprägungen die
nennen sich Aggregation und Komposition.

Kleines Beispiel:

Stack ist ein Aggregat und die Zusammesetzung erfolgt als Komposition.
Java:
public class Stack {
    private LinkedList list;
    public Stack() {
        list = new LinkedList();
    }
...
}
 

Generic1

Top Contributor
OK, ich hab alles Verstanden bis auf das Beispiel, Du hast eine Klasse Stack gemacht und in einem Objekt dieser Klasse Stack ist ein weiteres Objekt "LinkedList" enthalten.
So weit ist es mir klar, mir ist jetzt nicht ganz klar wo da der in dem Buch beschriebene root und die boundarys sind.
Was mir klar ist, dass die LinkedList nicht ohne ein Stack- Objekt leben kann, kann man dann dazu sagen, dass es sich um eine Aggregation handelt?
 

ThreadPool

Bekanntes Mitglied
OK, ich hab alles Verstanden bis auf das Beispiel, Du hast eine Klasse Stack gemacht und in einem Objekt dieser Klasse Stack ist ein weiteres Objekt "LinkedList" enthalten.
So weit ist es mir klar, mir ist jetzt nicht ganz klar wo da der in dem Buch beschriebene root und die boundarys sind.
Was mir klar ist, dass die LinkedList nicht ohne ein Stack- Objekt leben kann, kann man dann dazu sagen, dass es sich um eine Aggregation handelt?


Da ich dein Buch nicht kenne, kann ich nur vermuten was mit "root" und "boundarys" gemeint ist. Ich
tippe mal darauf, dass das Zusammengesetzte Objekt (Stack) als "root" bezeichnet wird und mit
"boundarys" die Objektgrenzen (von Stack) gemeint sind. Und zu deiner zweiten Frage da die
Komposition eine spezielle Form der Aggregation ist, kann man sagen das es sich um eine
Aggregation handelt. Du solltest aber Bedenken, dass wenn jmd das Wort Aggregation verwendet er
meist nicht die starke Form, also Komposition, meint.
 
Zuletzt bearbeitet:

Generic1

Top Contributor
@maki:

Besten Dank für den Link, was ich noch nicht ganz verstanden habe ist dieser Satz:
>> Each Aggregate is treated as a single unit for persistence purposes.

Ein Aggregate gehört zusammen, dass ist mir klar aber das "for persistance purposes" ist mir nicht klar,
Heißt das, dass ich das ganze Aggregate- Objekt in einem in eine Datenbank speichere (das kanns jetzt nicht sein, das war aber mein erster Gedanke).??
 
S

SlaterB

Gast
das heißt nicht, dass der ganze Verbund in eine Tabelle stehten muss,
aber wenn man Speichern dafür aufruft, dann läuft eine komplexe Logik an, die alle Teile des Aggregats einzeln speichert oder zumindest mit dem DB-Stand vergleicht
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
G konkretes Domain Driven Design Aggregate Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben