Nel libro classico di GoF. Puoi trovare una spiegazione molto buona della comprensione di base di UML nell'Appendice B (ed esempi di codice in C ++).
Per prima cosa è meglio leggere un'introduzione e l'Appendice A.
- Modelli di progettazione: elementi del software orientato agli oggetti riutilizzabile.
E in questo libro puoi trovare altri esempi con JAVA.
- Head First Design Patterns, A Brain-Friendly Guide.
Aggregation implies that one object owns or is responsible for another object. Generally we speak of an object having or being part of another object. Aggregation implies that an aggregate object and its owner have identical lifetimes.
Acquaintance implies that an object merely knows of another object. Sometimes
acquaintance is called "association" or the "using" relationship. Acquainted
objects may request operations of each other, but they aren't responsible for each other. Acquaintance is a weaker relationship than aggregation and suggests much looser coupling between objects.
In our diagrams, a plain arrowhead line denotes acquaintance. An arrowhead line with a diamond at its base denotes aggregation
object composition - assembling or composing objects to get more complex behavior.
Nel tuo esempio aggreghi o erediti una certa quantità di elementi da 1 a molte, molte a molte relazioni.
Google: Delegazione, Composizione, Ereditarietà, Instantiator, Instantiatee