Association
/ Beziehungen |
|
|
public class Extended {
private Basic lnkBasic;
private Basic lnkBasic1;
private Basic lnkBasic3;
private Basic lnkBasic2;
}
|
|
-
Objekte und Klassen stehen untereinander in verschiedenen
Beziehungen. Eine Beziehung ist die Vererbungsbeziehung. Die andere
Gruppe wird als Assoziation bezeichnet.
-
Aus der Programmsicht heißt das einfach: die
Klasse "Extend" verwendet Objekte der Klasse Basic.
-
Da das Objekte "Basic" jedoch kein Standardtyp ist
(wie Int,String,...) wird anstatt dem Attribut in der Klasse eine Beziehung
in Form einer Line oder Pfeils verwendet.
-
Merke: echte Attribute haben nur Standardtypen. Alles
andere sind Beziehungen zu anderen Klassen.
-
Ausnahmen sind erlaubt um z.B. die Übersichtlichkeit
von Klassendiagrammen zu verbessern.
|
A B
Association
|
|
Standard Assoziation zwischen zwei Klassen oder Objekten. |
A
B
Directed Association
|
|
Assoziation mit Richtungsangabe. A verwendet B und B ist von A unabhängig
(B weiß nicht, dass A existiert). Die Richtungsangabe hat auf den
Sourcecode keinen Einfluss, dient jedoch als stilistisches Mittel um die
Beziehungen zu verdeutlichen. |
A B
Composition
A B
|
|
Ganzes-Teil Beziehung. A ist das Ganze und B ist ein Teil davon. Hier
wird B nicht automatisch vernichtet wenn A vernichtet wird (Hat aber für
die Programmierung meist keine Relevanz – im Gegensatz zum Gebrauch bei
der Datenbankmodellierung). |
A B
Aggregation
A B
|
|
Wie Composition, jedoch wird hier B automatisch vernichtet wenn A vernichtet
wird.
Hinweis: in Java kann eigentlich keine Composition realisiert werden,
da die Objekte erst durch den Garbage collector vernichtet werden existiert
B noch unbekannt lange weiter |
|
|