Sommaire

Agrégation et composition

1. Agrégation

L’agrégation est une relation contenu-contenant dite « faible », dans le sens où le contenu survit à la destruction de son contenant. Pour reprendre le schéma UML du chapitre Les concepts de la POO, une voiture comprend de zéro à cinq roues (n’oublions pas la roue de secours), et une roue est associée à zéro ou une voiture.

Une version simple de cette relation pourrait être implémentée ainsi :

class Voiture:  
  
    def __init__(self):  
        # Déclaration d’une liste censée  
        # contenir les roues de la voiture.  
        self.roues = []  
  
class Roue:  
  
    def __init__(self):  
        # Déclaration d’un attribut contenant une référence  
        # vers la voiture à laquelle est rattachée la roue.  
        self.voiture = None  
  
# Création d’une liste avec quatre instances de Roue.  
roues = [Roue() for i in range(4)]  
# Création d’une instance de Voiture.  
voiture = Voiture()  
# Assignation de la liste de roues à la Voiture.  
voiture.roues=roues  
# À chaque roue de la liste...  
for roue in roues:  
    # ... on associe la voiture. ...