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ätBedeutung
1genau eine
0 ..1hö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

pencil

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