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:06] 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 //
  
-=== BeispielStromschalter und Wippe (Aktuator) ===+==== Sourcecode ==== 
 +<code python> 
 +class Person                                                
 +                                                                                  
 +    def __init__(self, name):      
 +        self._name   name      
 +        self._wallet None # die Referenz wird erst später zugewiesen  
 +          
 +    @property                                                                     
 +    def name(self):                                                              
 +        return self._name                   
  
-{{:modul:m320_2024:learningunits:lu08:klassepower.png?400|}}+    @property             
 +    def wallet(self):           
 +        return self._wallet                                   
 +                                   
 +    @wallet.setter     
 +    def wallet(self, wallet):                                       
 +        self._wallet = wallet                    
 +                                
 +class Wallet:                      
 + 
 +    def __init__(self):        
 +        pass   
 +                                               
 +    def deposit_money(self, amount):     
 +        pass                          
 + 
 +    def withdraw_money(self, amount):      
 +        pass    
 + 
 +if __name__ == '__main__':    
 +    person = Person('Max'  
 +    wallet = Wallet()   
 +    person.wallet = wallet  
 + 
 +</code> 
 + 
 +===== Beispiel: Stromschalter und Wippe (Aktuator) ===== 
 +==== Klassendiagramm ==== 
 + 
 +{{:modul:m320_2024:learningunits:lu08:klassepower.png?600|}}
  
 //Abb: Klassen in einer einseitigen Beziehung// //Abb: Klassen in einer einseitigen Beziehung//
Zeile 36: Zeile 76:
 In diesem Fall ist es zwingend, dass die Wippe zeitlich zuerst erzeugt wird, so dass ihre Referenz verfügbar ist. 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|}}+==== Sequenzdiagramm ==== 
 + 
 +{{:modul:m320_2024:learningunits:lu08:sequenzpower.png?600|}}
  
 //Abb: Sequenz-Diagramm der Zuweisung einer einseitigen Beziehung über den Konstruktor// //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.1726139199.txt.gz
  • Zuletzt geändert: 2024/09/12 13:06
  • von msuter