Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m320_2024:learningunits:lu08:einseitigebeziehung [2024/09/12 13:18] msutermodul: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 "A" ein anderes Objekt "B" aber nicht umgekehrt.\\ Bei einer einseitigen Beziehung kennt ein Objekt "A" ein anderes Objekt "B" aber nicht umgekehrt.\\
  
-==== Beispiel: Geldbeutel und Besitzer ====+===== Beispiel: Geldbeutel und Besitzer ===== 
 +==== Klassendiagramm ====
  
-{{:modul:m320_2024:learningunits:lu08:klassewallet.png?400|}}+{{:modul:m320_2024:learningunits:lu08:klassewallet.png?600|}}
  
 //Abb: Klassen in einer einseitigen Beziehung// //Abb: Klassen in einer einseitigen Beziehung//
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.
  
-{{:modul:m320_2024:learningunits:lu08:sequenzwallet.png?400|}}+{{:modul:m320_2024:learningunits:lu08:sequenzwallet.png?600|}}
  
 //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 ====
- +
-{{:modul:m320_2024:learningunits:lu08:klassepower.png?400|}} +
- +
-//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. +
- +
-{{:modul:m320_2024:learningunits:lu08:sequenzpower.png?400|}} +
- +
-//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:
 </code> </code>
  
 +===== Beispiel: Stromschalter und Wippe (Aktuator) =====
 +==== Klassendiagramm ====
 +
 +{{:modul:m320_2024:learningunits:lu08:klassepower.png?600|}}
 +
 +//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 ====
 +
 +{{:modul:m320_2024:learningunits:lu08:sequenzpower.png?600|}}
 +
 +//Abb: Sequenz-Diagramm der Zuweisung einer einseitigen Beziehung über den Konstruktor//
 +
 +==== Sourcecode ====
 +
 +<code python>
 +class PowerSwitch:    
 +
 +    def __init__(self, type, actuator):  
 +        self._type   = type     
 +        self._actuator = actuator
 +
 +    @property    
 +    def type(self):
 +        return self._type  
 +         
 +class Actuator:   
 +              
 +    def __init__(self):
 +        self._position = False
 +
 +    def press(self): 
 +        pass  
 +
 +    def release(self):  
 +        pass 
 +
 +    def is_pressed(self): 
 +        return self._position   
 +
 +if __name__ == '__main__':  
 +    actuator = Actuator()         
 +    switch = PowerSwitch('single', actuator)
 +
 +</code>
 ---- ----
 {{tag>M320-LU08}} {{tag>M320-LU08}}
 [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] René Probst, bearbeitet durch Marcel Suter [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] René Probst, bearbeitet durch Marcel Suter
  
  • modul/m320_2024/learningunits/lu08/einseitigebeziehung.1726139920.txt.gz
  • Zuletzt geändert: 2024/09/12 13:18
  • von msuter