Vertiefung der Programmierung

Objektbeziehungen
und -kommunikation

Klassendiagramme Wiederholung
Person
# firstname: String
# lastname: String
+ Person(firstname: String, lastname: String)
+ setLastname(name: String) : void
Student
- id: String
+ Student(firstname: String,
lastname: String, id: String)
Generalisierung
(Vererbung)
Objektkommunikation Motivation
Person
# firstname: String
# lastname: String
+ Person(firstname: String, lastname: String)
+ setLastname(name: String) : void
Student
- id: String
+ Student(firstname: String,
lastname: String, id: String)
Course
Wie stellen wir Verbindungen
zwischen Klassen her?
?
Objektkommunikation

Assoziation
= Objekte kommunizieren auf Augenhöhe
Assoziation
Student
- id: String
+ Student(firstname: String,
lastname: String, id: String)
Course
- id: String
+ Course(id: String, name: String)
- name: String
Eigenschaften:
- beide Klassen sind gleichrangig
- beide Klassen existieren unabhängig
Aggregation
= eine Klasse (Ganzes) besitzt andere als Teile
Eigenschaften:
- Lebensdauer der Teile ist nicht an
die der anderen Klasse (Ganzes) gekoppelt - Teile können unabhängig von Ganzem
weiter existieren

Aggregation
Tire
Car
Komposition
= eine Klasse (Ganzes) besitzt andere vollständig als Teile
Eigenschaften:
- Lebensdauer der Teile ist fest an
die der anderen Klasse (Ganzes) gekoppelt - Teile können nicht unabhängig
von Ganzem existieren
Komposition
Page
Book
Assoziation vs. Aggregation vs. Komposition
Assoziation
Aggregation*
Komposition
Komposition
Das "Ganze"
Die "Teile"
Aggregation
Das "Ganze"
Die "Teile"
Merke: Je dunkler die Raute,
desto stärker die Bindung
* grau wird nur zur Darstellung verwendet (Rautenfarbe: weiß)
Multiplizitäten (bzw. Kardinalitäten)
= wie viele Einheiten stehen jeweils in Beziehung
A
B
?
?
| Multiplizität | Bedeutung |
|---|---|
| 1 | genau eine |
| 0 ..1 | höchstens eine |
| 0 .. * | beliebig viele |
| 1 .. * | mindestens eine |
| m .. n | von m bis n (z.B. 2 .. 7) |
?
- Jedes A gehört zu mind. einem B
- Jedes B gehört zu genau einem A
1
1..*
Beispiel?
Multiplizitäten (bzw. Kardinalitäten)
= wie viele Einheiten stehen jeweils in Beziehung
Hochschule
Student:in
Kurs
Dozent:in
live
⌨️ Implementierung (Assoziation)
⌨️ Implementierung (Aggregation)

⌨️ Implementierung (Komposition)
✅ Zusammenfassung
- Wie beschreiben wir Objektbeziehungen?
- Assoziationen
- Aggregation
- Komposition
- Wie viele Einheiten stehen sich gegenüber?
- sog. Multiplizitäten (Kardinalitäten)
- 0..1, 1, 0..*, 1..*, m..n
- ⌨️ Wie werden Beziehungen implementiert?


Objektkommunikation
By blackbill
Objektkommunikation
- 332