Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m320_2024:learningunits:lu08:einseitigebeziehung [2024/09/16 07:11] – msuter | modul:m320_2024:learningunits:lu08:einseitigebeziehung [2024/09/18 13:12] (aktuell) – msuter | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
* einseitge Beziehungen | * einseitge Beziehungen | ||
* zweiseitige Beziehungen | * zweiseitige Beziehungen | ||
- | |||
- | ===== Einseitige Beziehung ===== | ||
Bei einer einseitigen Beziehung kennt ein Objekt " | Bei einer einseitigen Beziehung kennt ein Objekt " | ||
- | ==== Beispiel: Geldbeutel und Besitzer ==== | + | ===== Beispiel: Geldbeutel und Besitzer |
+ | ==== Klassendiagramm | ||
{{: | {{: | ||
Zeile 18: | Zeile 17: | ||
Daher wird hier die Referenz über eine Methode gesetzt. | Daher wird hier die Referenz über eine Methode gesetzt. | ||
So sind die Erzeugung des Personen-Objekts und die Zuweisung der Referenz zeitlich unabhängig. | So sind die Erzeugung des Personen-Objekts und die Zuweisung der Referenz zeitlich unabhängig. | ||
+ | |||
+ | ==== Sequenzdiagramm ==== | ||
Dies zeigt das zugehörige Sequenz-Diagramm eindeutig auf. | Dies zeigt das zugehörige Sequenz-Diagramm eindeutig auf. | ||
Zeile 25: | Zeile 26: | ||
//Abb: Sequenz-Diagramm der Zuweisung einer einseitigen Beziehung über eine Methode // | //Abb: Sequenz-Diagramm der Zuweisung einer einseitigen Beziehung über eine Methode // | ||
- | ==== Beispiel: Stromschalter und Wippe (Aktuator) ==== | + | ==== Sourcecode |
- | + | ||
- | {{: | + | |
- | + | ||
- | //Abb: Klassen in einer einseitigen Beziehung// | + | |
- | + | ||
- | Ein Stromschalter braucht immer eine Wippe, sonst kann er ja nicht benutzt werden. | + | |
- | Daher muss sichergestellt sein, dass mit der Erzeugung des Stromschalter-Objektes auch die Referenz zu einer Wippe gesetzt wird. | + | |
- | Es ist also wichtig, dass die Referenz mit dem Konstruktor geliefert wird. | + | |
- | In diesem Fall ist es zwingend, dass die Wippe zeitlich zuerst erzeugt wird, so dass ihre Referenz verfügbar ist. | + | |
- | + | ||
- | {{: | + | |
- | + | ||
- | //Abb: Sequenz-Diagramm der Zuweisung einer einseitigen Beziehung über den Konstruktor// | + | |
- | + | ||
- | ===== Programmcode ===== | + | |
- | Zu den beiden Beispielen finden Sie hier die Umsetzung in Python. | + | |
- | + | ||
- | ==== Geldbeutel und Besitzer | + | |
<code python> | <code python> | ||
class Person: | class Person: | ||
Zeile 81: | Zeile 64: | ||
</ | </ | ||
+ | ===== Beispiel: Stromschalter und Wippe (Aktuator) ===== | ||
+ | ==== Klassendiagramm ==== | ||
- | ==== Stromschalter und Wippe ==== | + | {{: |
+ | |||
+ | //Abb: Klassen in einer einseitigen Beziehung// | ||
+ | |||
+ | Ein Stromschalter braucht immer eine Wippe, sonst kann er ja nicht benutzt werden. | ||
+ | Daher muss sichergestellt sein, dass mit der Erzeugung des Stromschalter-Objektes auch die Referenz zu einer Wippe gesetzt wird. | ||
+ | Es ist also wichtig, dass die Referenz mit dem Konstruktor geliefert wird. | ||
+ | In diesem Fall ist es zwingend, dass die Wippe zeitlich zuerst erzeugt wird, so dass ihre Referenz verfügbar ist. | ||
+ | |||
+ | ==== Sequenzdiagramm | ||
+ | |||
+ | {{: | ||
+ | |||
+ | //Abb: Sequenz-Diagramm der Zuweisung einer einseitigen Beziehung über den Konstruktor// | ||
+ | ==== Sourcecode ==== | ||
<code python> | <code python> | ||
class PowerSwitch: | class PowerSwitch: | ||
- | def __init__(self, | + | def __init__(self, |
self._type | self._type | ||
self._actuator = actuator | self._actuator = actuator |